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

Основы функционального программирования - тест 12

Упражнение 1:
Номер 1
Какая из перечисленных  форм содержит подвыражения, которые можно не вычислять, т.к. их значения не влияют на результат?

Ответ:

 (1) (car(cons 1 (cons 2 3))) 

 (2) (cons 1 (cons 2 3)) 

 (3) (cond (x (cons 'A x)) (y (cons 1 (cons 2 y)) )) 


Номер 2
Какая из перечисленных  форм содержит подвыражения, которые можно не вычислять, т.к. на результат их значения не влияют?

Ответ:

 (1) (cons 'A (car(cons 'A (cons 'B 'C)))) 

 (2) (cons 1 (cons 2 3)) 

 (3) (cond (x (cons 'A x)) (y (cons 1 (cons 2 y)) )) 


Номер 3
Какая из перечисленных  форм содержит подвыражения, которые можно не вычислять, т.к. результат от их значения не зависит?

Ответ:

 (1) (cond (T (cons 'A x)))((cons 1 (cons 2 y)) )) 

 (2) (cons 1 (cons 2 3)) 

 (3) (cond (x (cons 'A x)) (y (cons 1 (cons 2 y)) )) 


Упражнение 2:
Номер 1
В какой из перечисленных  форм все подвыражения необходимо вычислить?

Ответ:

 (1) (car(cons 1 (cons 2 3))) 

 (2) (eq 'A (car(cons 'A (cons 'B 'C)))) 

 (3) (cons 1 (cons 2 3)) 


Номер 2
В какой из перечисленных  форм вычисление всех подвыражений необходимо?

Ответ:

 (1) (car(cons 1 (cons 2 3))) 

 (2) (eq 'A (car(cons 'A (cons 'B 'C)))) 

 (3) (print (cons 'A (cons 'B 'C))) 

 (4) (cond (T Nil)(x (car(cons 'A 'B)))(y (cons 1 (cons 2 3)))) 


Номер 3
В какой из перечисленных  форм вычисление всех подвыражений для получения результата обязательно?

Ответ:

 (1) (eq 'A (car(cons 'A (cons 'B 'C)))) 

 (2) (cond (T Nil) (x (car(cons 'A 'B)))(y (cons 1 (cons 2 3)))) 

 (3) (cond (T(car(cons 'A 'B)))((cons 1 (cons 2 3))T)) 

 (4) (+ 5 (* 2 3)) 

 (5) (atom (cons 'A (cons 'B 'C))) 


Упражнение 3:
Номер 1
В какой из перечисленных  форм необходимость вычислять все  подвыражения зависит от значений переменных?

Ответ:

 (1) (car(cons 1 (cons x y))) 

 (2) (car(cons x (cons 'B 'C))) 

 (3) (cond (x (car(cons 'A 'B)))(T Nil)) 


Номер 2
Какая из форм содержит константные выражения, которые можно заменить их значениями?

Ответ:

 (1) (car(cons 1 (cons x 3))) 

 (2) (eq 'A (car(cons x (cons 'B y)))) 

 (3) (cond (T(car(cons 'A 'B)))((cons 1 (cons 2 3)))) 

 (4) (cond (x (car(cons 'A 'B)))(T (cons 1 (cons 2 3)))) 


Номер 3
Какая из форм содержит общие подвыражения, которые целесообразно вычислить предварительно, чтобы избежать повторного вычисления одних и тех же выражений?

Ответ:

 (1) (car(cons 1 (cons x 1))) 

 (2) (cons 'A (car(cons x (cons 'A x)))) 

 (3) (list 1 (cons 2 x) 2 (cons 2 x) 3 (cons 2 x) 

 (4) (cond (x (car(cons 'A 'B)))(T (cons 1 (cons 2 3)))) 


Упражнение 4:
Номер 1
Какая из форм не содержит константных подвыражений?

Ответ:

 (1) (car(cons 1 (cons x 3))) 

 (2) (cons 1 (cons 2 3)) 

 (3) (cond (x (car(cons 'A 'B)))(T (cons 1 (cons 2 3)))) 


Номер 2
Какая из форм не содержит подвыражений, допускающих замену на их значения?

Ответ:

 (1) (cons 'A (car(cons x (cons 'B y)))) 

 (2) (cond (x (car(cons 'A 'B)))(T (cons 1 (cons 2 3)))) 

 (3) (cons 1 (cons 2 3)) 


Номер 3
В какой из форм нет константных подвыражений?

Ответ:

 (1) (cond (T(car(cons x 'A )))((cons 1 (cons 3 y))T)) 

 (2) (cons 1 (cons 2 3)) 

 (3) (cond (x (car(cons 'A 'B)))(T (cons 1 (cons 2 3)))) 


Упражнение 5:
Номер 1
В какой из перечисленных  форм возможность не вычислять все  подвыражения не зависит от значений переменных?

Ответ:

 (1) (cond (nil (car(cons x (cons 2 3))) )) 

 (2) (cond (T (cons 'A (cons x (cons 'B y)))) 

 (3) (cond (x (cons x (cons 2 y)))) 


Номер 2
В какой из перечисленных  форм можно вычислять не все подвыражения независимо от значений переменных?

Ответ:

 (1) (cond (cons 'A (car(cons x y)) ) (cons 'one x) ) (T (cons 'two y)) ) 

 (2) (cond (T(car(cons 'A 'B)))((cons x (cons 2 3))T)) 

 (3) (cond (x (cons x (cons 2 3)))) 


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

Ответ:

 (1) (cond (x (cons x (cons 2 3)))) 

 (2) (cond (T (cons 'A (cons x (cons 'B y)))) 

 (3) (cond (x (car(cons 'A 'B))) (T (cons 1 (cons 2 3)))) 


Упражнение 6:
Номер 1
Вычисление какой подформулы может происходить не при каждом  исполнении общей формулы?

Ответ:

 (1) параметры обычных функций 

 (2) параметры специальных функций, например, операторы в форме prog 

 (3) самые левые предикаты в ветвлениях 


Номер 2
Вычисление какой подформулы не гарантировано при  исполнении общей формулы?

Ответ:

 (1) параметры обычных функций 

 (2) произвольное число аргументов функции LIST 

 (3) предикаты в ветвлениях 


Номер 3
Вычисление какой подформулы может происходить или не происходить при исполнении общей формулы в зависимости от хода других вычислений?

Ответ:

 (1) параметры обычных функций 

 (2) параметры арифметических мультиопераций 

 (3) параметры логических связок AND и OR 


Упражнение 7:
Номер 1
Вычисление каких подформул не может происходить вообще?

Ответ:

 (1) предикаты в ветвлениях 

 (2) параметры специальных функций 

 (3) непомеченные выражения, расположенные сразу вслед за RETURN в форме PROG 


Номер 2
Вычисление каких подформул вообще невозможно, точнее, бессмысленно?

Ответ:

 (1) параметры внешних функций 

 (2) выражения, зависящие от свободных переменных, значения которых не определены 

 (3) предикаты в ветвлениях 


Номер 3
Вычисление каких подформул не имеет смысла?

Ответ:

 (1) обращения к функциям, которые могут зациклиться 

 (2) ветви условного выражения, соответствующие тождественно ложному предикату 

 (3) выражения, которые предстоит умножить на ноль 


Упражнение 8:
Номер 1
Какие из перечисленных форм содержат подвыражения, которые можно не вычислять?

Ответ:

 (1) (car(cons 1 (cons 2 3))) 

 (2) (cons 'A (car(cons 'A (cons 'B 'C)))) 

 (3) (cond (T(car(cons 'A 'B)))((cons 1 (cons 2 3))T)) 

 (4) (cons 1 (cons 2 3)) 


Номер 2
В каких из перечисленных форм все подвыражения необходимо вычислить?

Ответ:

 (1) (car(cons 1 (cons 2 3))) 

 (2) (cons 'A (car(cons 'A (cons 'B 'C)))) 

 (3) (cond (T(car(cons 'A 'B)))((cons 1 (cons 2 3))T)) 

 (4) (cons 1 (cons 2 3)) 

 (5) (car(cons 'A (cons 'B 'C)) x) 


Номер 3
В каких из перечисленных форм необходимость вычислять те или иные подвыражения зависит от значений переменных?

Ответ:

 (1) (cond ((atom x) (car(cons x (cons 2 3))) ) 

 (2) (cond (T(car(cons 'A 'B)))((cons x (cons 2 3))T)) 

 (3) (cons 1 (cons x 3)) 

 (4) (cond (x (cons 'A x)))(T (cons 1 (cons 2 y)))) 


Упражнение 9:
Номер 1
Вычисление каких конструкций может происходить не при каждом исполнении формулы?

Ответ:

 (1) параметры обычных функций 

 (2) параметры специальных функций 

 (3) ветви условного выражения 

 (4) предикаты в ветвлениях 


Номер 2
Вычисление каких конструкций не может происходить вообще?

Ответ:

 (1) параметры специальных функций 

 (2) ветви условного выражения 

 (3) непомеченные выражения, расположенные сразу вслед за RETURN, GOTO, THROW и т.п. 


Номер 3
Какие средства позволяют программисту оптимизировать Лисп-программы методом "ленивых" вычислений?

Ответ:

 (1) лямбда-конструктор (lambda) 

 (2) блокировка вычислений (quote) 

 (3) открытый доступ к интерпретации (eval, apply, funcall) 

 (4) встроенный компилятор (compile) 




Главная / Программирование / Основы функционального программирования / Тест 12