Главная / Программирование /
Функциональное программирование / Тест 4
Функциональное программирование - тест 4
Упражнение 1:
Номер 1
За счет чего функциональные программы содержат меньше ошибок?
Ответ:
 (1) функциональные программы не содержат побочных эффектов 
 (2) функциональные программы короче 
 (3) на функциональных языках автоматически контролируются ошибки типа переполнения буфера 
 (4) функциональные программ более просты и понятны для программиста 
Номер 2
Какие операторы традиционно отсутствуют в функциональных языках?
Ответ:
 (1) оператор присваивания 
 (2) оператор присваивания и операторы циклов с пред- и пост-условиями 
 (3) оператор присваивания и условный оператор 
 (4) все операторы присутствуют 
Номер 3
Как реализуются повторяющиеся действия в функциональных языках?
Ответ:
 (1) с помощью рекурсии  
 (2) с помощью конструкций циклов 
 (3) с помощью оператора перехода 
 (4) с помощью функциональной абстракции 
Упражнение 2:
Номер 1
Какой принцип построения функциональных программ?
Ответ:
 (1) программа строится из набора функций, каждая из которых перерабатывает входные данные в выходные. Функции также могут рассматриваться как данные 
 (2) программа строится из набора функций, каждая из которых перерабатывает входные данные в выходные. Существует четкое разделение между данными и функциями 
 (3) программа строится из набора вызывающих друг друга подпрограмм (процедур и функций) 
 (4) программа представляет собой одно большое арифметическое выражение 
Номер 2
Какие основные способы борьбы со сложностью используются в функциональных программах?
Ответ:
 (1) функциональная абстракция и функциональная декомпозиция 
 (2) наследование и полиморфизм 
 (3) функциональная абстракция и мемоизация 
 (4) функциональная декомпозиция и динамическое связывание 
Номер 3
Какие языки программирования являются преимущественно функциональными?
Ответ:
 (1) C++ 
 (2) Java 
 (3) C# 
 (4) Haskell  
 (5) F# 
 (6) FORTH 
 (7) OCaml 
 (8) Objective C 
Упражнение 3:
Номер 1
Какая алгоритмическая модель лежит в основе функционального программирования?
Ответ:
 (1) λ-исчисление 
 (2) логика предикатов 1-го порядка 
 (3) логика высших порядков 
 (4) машина Тьюринга 
Номер 2
Какая алгоритмическая модель лежит в основе императивного программирования?
Ответ:
 (1) λ-исчисление 
 (2) логика предикатов 1-го порядка 
 (3) логика высших порядков 
 (4) машина Тьюринга 
Номер 3
В чем отличия фунционального программирования и императивного?
Ответ:
 (1) функциональное программирование оперирует функциями и их применением к данным, императивное – операторами и тем, как они изменяют состояние памяти 
 (2) в фунциональном программировании каждая функция может оперировать только с той областью памяти, которая для нее выделена 
 (3) в функциональном программировании происходит автоматический поиск решения задачи по ее декларативному описанию 
 (4) все вышеперечисленное 
Упражнение 4:
Номер 1
Почему функциональное программирование сейчас представляет повышенный интерес для изучения?
Ответ:
 (1) это молодое направление программирования 
 (2) многие программные проекты сейчас реализуются на функциональных языках 
 (3) функциональный подход помогает решать такие проблемы, как распараллеливание вычислений 
Номер 2
За счет чего функциональные программы обычно содержат меньше ошибок, чем императивные?
Ответ:
 (1) они короче, поэтому меньше шанс ошибиться 
 (2) программисты на функциональных языках обычно умнее, поэтому делают меньше ошибок 
 (3) функциональные программы проще отлаживать из-за их естественной модульности 
 (4) функциональные программы не содержат побочных эффектов 
Номер 3
Почему функциональные программы не содержат побочных эффектов?
Ответ:
 (1) отсутствует понятие переменной и оператора присваивания 
 (2) функция может оперировать только над переменными, описанными внутри нее 
 (3) запрещено модифицировать внутренние переменные функции извне самой функции 
 (4) отсутствует понятие области видимости