игра брюс 2048
Главная / Программирование / Функциональное программирование / Тест 7

Функциональное программирование - тест 7

Упражнение 1:
Номер 1
 Какие основные операции в чистом λ-исчислении?
 

Ответ:

 (1) абстракция и аппликация 

 (2) аппликация и инкапсуляция 

 (3) абстракция и инкапсуляция 

 (4) абстракция, аппликация и сложение 


Номер 2
 Какие недостатки "классической" нотации для определения функции f(x)=2*x+1?
 

Ответ:

 (1) она может быть истолкована неоднозначно 

 (2) она неудобна для программирования 

 (3) в ней сложно различать свободные и связанные переменные 


Номер 3
 Как определяется функция в λ-исчислении?
 

Ответ:

 (1) как множество пар <аргумент, значение> 

 (2) как строка, представляющая собой совокупность абстракций и аппликаций 

 (3) как алгоритм вычисления функции по заданному входному значению 


Упражнение 2:
Номер 1
 Что такое каррирование?
 

Ответ:

 (1) представление функции от нескольких аргументов как функции от одного аргумента, возвращающей результат-функцию 

 (2) представление функции от нескольких аргументов как функции от одного аргумента – упорядоченной n-ки 

 (3) представление функции от нескольких аргументов как функции от одного аргумента спискового типа 

 (4) запрет на использование функций от нескольких аргументов 


Номер 2
 Какой тип у каррированной функции сложения целых чисел?
 

Ответ:

 (1) int -> (int -> int) 

 (2) (Int -> int) -> int 

 (3) (int Ч int) -> int 

 (4) Int -> int 


Номер 3
 Пусть mul3 – каррированная функция умножения трех целых чисел, mul3 = xyz.x*y*z. Какой будет тип у выражения (mul3 5)?
 

Ответ:

 (1) int 

 (2) int -> int 

 (3) int -> int -> in

 (4) (int x int) -> int 


Упражнение 3:
Номер 1
 В чем разница между конструкциями fun и function в F#?
 

Ответ:

 (1) fun – это более короткий способ записи function 

 (2) function может описывать функции от одного аргумента, fun – каррированные функции от нескольких аргументов 

 (3) fun служит для задания функциональной константы, function – для описания функции 

 (4) function служит для задания функциональной константы, fun – для описания функции 


Номер 2
 В чем разница между конструкциями fun и function в F#?
 

Ответ:

 (1) fun – это более короткий способ записи function 

 (2) в function может использоваться сопоставление с образцом, в fun – нет 

 (3) fun служит для задания функциональной константы, function – для описания функции 

 (4) function служит для задания функциональной константы, fun – для описания функции 


Номер 3
 Где может использоваться сопоставление с образцом в F#?
 

Ответ:

 (1) в конструкциях function, match, let 

 (2) для этого предназначена специальная конструкция match 

 (3) в конструкции связывания let 

 (4) в конструкциях let и match  


Упражнение 4:
Номер 1
 Как описываются рекурсивные функции в F#?
 

Ответ:

 (1) специальным оператором rec 

 (2) добавлением rec в операцию связывания let 

 (3) в F# нельзя описывать рекурсивные функции 


Номер 2
 Как описать повторяющиеся действия в функциональном языке?
 

Ответ:

 (1) с помощью циклов 

 (2) с помощью оператора перехода 

 (3) с помощью рекурсии 

 (4) любым их перечисленных способов 


Номер 3
 Какая рекурсия называется линейной?
 

Ответ:

 (1) при вызове функции осуществляется не более одного рекурсивного вызова 

 (2) в теле функции присутствует только один рекурсивный вызов 

 (3) рекурсивный вызов – это последнее действие в теле функции 

 (4) это разновидность рекурсии с одним параметром – номером шага 




Главная / Программирование / Функциональное программирование / Тест 7