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

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

Упражнение 1:
Номер 1
Отметьте определение функции, дающей в результате список из единиц?

Ответ:

 (1) (defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) )) 

 (2) (defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) ) L) 

 (3) (defun LN (L) (cond ((null L)Nil) (T (Cons L (LN (cdr L)))) )) 


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

Ответ:

 (1) (defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) ) L) 

 (2) (defun LN (L) (cond ((EQ L NIL)L) (T (Cons 1 (LN (cdr L)))) )) 

 (3) (defun LN (L) (cond ((null L)Nil) (T (Cons L (LN (cdr L)))) )) 


Номер 3
Выберите определение функции, чтобы получить список из единиц такой же длины как аргумент:

Ответ:

 (1) (defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) ) L) 

 (2) (defun LN (L) (cond (L (Cons 1 (LN (cdr L)))) (1 L) )) 

 (3) (defun LN (L) (cond ((null L)Nil) (T (Cons L (LN (cdr L)))) )) 


Упражнение 2:
Номер 1
Какая из форм построит список уникальных чисел (использовать определение объединения из лекции)?

Ответ:

 (1) (union '(1 2 3 1 2 3) Nil) 

 (2) (union Nil '(1 2 3 1 2 3)) 

 (3) (union '(1 2 3) '(1 2 3 2)) 


Номер 2
Какая из форм поможет избавиться от совпадений чисел в аргументах (использовать определение объединения из лекции)?

Ответ:

 (1) (union '(1 2 3 ) Nil) 

 (2) (union Nil '(1 2 3 1 2 3)) 

 (3) (union '(1 2 3 4) '(1 2 3 5)) 


Номер 3
Какая из форм не убирает повторы в списках (использовать определение объединения из лекции)?

Ответ:

 (1) (union '(1 2 3 1 2 3) Nil) 

 (2) (union Nil '(1 2 3 1 2 3)) 

 (3) (union '(1 2 3) '(1 2 3)) 

 (4) (union '(1 2 3 ) NIL ) 


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

Ответ:

 (1) (prog (x y ...) (setq x e1) e2 e3 (return x) ) 

 (2) ((lambda (a1 a2 a3) a1 (list a2 aN )) e1 e2 e3) 

 (3) (let ((a1 e1)(a2 e2) (a3 e3)) a1 a2) 


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

Ответ:

 (1) (prog (x) (setq x e1) e2 e3 (print x)) 

 (2) ((lambda (a1 a2 a3) a1) e1 e2 e3) 

 (3) (let ((a1 e1) (a2 e2) (a3 e3)) (quote e1) 


Номер 3
Отметьте вариант, в котором последовательно будут вычислены выражения e1 e2 e3, а потом выдаст значение e1 как результат?

Ответ:

 (1) (prog (x) (setq x e1) e2 e3 (print x)) 

 (2) ((lambda (a) a) (list e1 e2 e3)) 

 (3) (car (list e1 e2 e3)) 

 (4) (let ( (a2 e2) (a3 e3)) e1) 


Номер 4
В каком случае указанная форма последовательно вычислит ряд выражений e1 e2 e3, а потом выдаст значение e1 как результат?

Ответ:

 (1) (prog (x y) e1 e2 e3 (return e1) ) 

 (2) ((lambda (a1 a2 a3) e1) e2 e3) 

 (3) (let ((a1 e1)(a2 e2) (a3 e3)) a1) 


Упражнение 4:
Номер 1
Какая из форм выдает то же значение, что и (cons y (cdr x))?

Ответ:

 (1) (rplaca x y) 

 (2) (cons x (cdr y)) 

 (3) (rplacd x y) 


Номер 2
Какое из выражений формально имеет то же значение, что и (rplaca x y)?

Ответ:

 (1) (cons y (cdr x)) 

 (2) (cons x (cdr y)) 

 (3) (rplacd x y) 


Номер 3
Какая из форм равнозначна (cons (car x) y)?

Ответ:

 (1) (rplacd x y) 

 (2) (rplaca x y) 

 (3) (cons x (cdr y)) 


Упражнение 5:
Номер 1
Какая из форм имеет значение (3 . 3)?

Ответ:

 (1) (cons (+ 1 2)(+ 1 2)) 

 (2) (let ((x (+ 1 2))) (cons x x) x) 

 (3) (prog (x)(setq x (+ 1 2)) (print (cons x x))) 


Номер 2
Какая из форм выведет значение (3 . 3) на экран?

Ответ:

 (1) (cons (+ 1 2)(+ 1 2)) 

 (2) ((lambda (x)(cons x x))(+ 1 2)) 

 (3) (prog (x)(setq x (+ 1 2)) (return (cons x x))) 

 (4) (prog (x)(setq x (+ 1 2)) (print (cons x x))) 


Номер 3
Какая из форм выдает (возвращает) результат (3 . 3)?

Ответ:

 (1) (list (+ 1 2)(+ 1 2)) 

 (2) ((lambda (x)(cons x y))(+ 1 2)) 

 (3) (prog (x)(setq x (+ 1 2)) (return (cons x x))) 

 (4) (prog (x)(setq x (+ 1 2)) (print (cons x x))) 


Упражнение 6:
Номер 1
Какой список фактических параметров соответствуют списку формальных параметров вида (x y z &rest t)?

Ответ:

 (1) (1 2 3 4 5) 

 (2) ((CONS 'a 'b )) 

 (3) (1 (2 3 4 5)) 


Номер 2
Какой из списков аргументов соответствует списку формальных параметров вида (x y z &rest t)?

Ответ:

 (1) ((CONS 'a 'b )) 

 (2) ((a)(b) (c)) 

 (3) (1 (2 3 4 5)) 


Номер 3
Какой список значений аргументов соответствует списку параметров вида (x y z &rest t)?

Ответ:

 (1) (1 (2 3 4 5)) 

 (2) ((CONS 'a 'b )) 

 (3) ('CONS (car x)(cdr x)) 


Упражнение 7:
Номер 1
Какой список фактических параметров не соответствует списку формальных параметров вида (x y z &rest t)?

Ответ:

 (1) (1 2 3 4 5) 

 (2) ((CONS 'a 'b )) 

 (3) ((a)(b) (c)) 

 (4) ('CONS (car x)(cdr x)) 


Номер 2
Какой из списков фактических параметров не соответствует списку формальных параметров вида (x y z &rest t)?

Ответ:

 (1) (1 2 3 4 5) 

 (2) ((a)(b) (c)) 

 (3) (1 (2 3 4 5)) 

 (4) ('CONS (car x)(cdr x)) 


Номер 3
Какой список аргументов не соответствует списку формальных параметров (x y z &rest t)?

Ответ:

 (1) (1 2 3 4 5) 

 (2) Nil 

 (3) ((a)(b) (c)) 

 (4) ('CONS (car x)(cdr x)) 


Упражнение 8:
Номер 1
Отметьте функционально эквивалентные определения

Ответ:

 (1) (defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) )) 

 (2) (defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) ) L) 

 (3) (defun LN (L) (cond ((EQ L NIL)L) (T (Cons 1 (LN (cdr L)))) )) 

 (4) (defun LN (L) (cond (L (Cons 1 (LN (cdr L)))) (1 L) )) 

 (5) (defun LN (L) (cond ((null L)Nil) (T (Cons L (LN (cdr L)))) )) 


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

Ответ:

 (1) (union Nil '(1 2 3 1 2 3)) 

 (2) (union '(1 2 3) '(1 2 3)) 

 (3) (union '(1 2 3 ) NIL ) 


Номер 3
Какие формы могут работать как эквиваленты?

Ответ:

 (1) (prog1 x y z) 

 (2) ((lambda (a b) a) x y) 

 (3) ((lambda (a b) a b) x y) 

 (4) (let ((a x)(b y))a) 

 (5) (let ((a x)(b y)) ) 


Упражнение 9:
Номер 1
Какие из форм взаимозаменяемы по формальному значению?

Ответ:

 (1) (cons y (cdr x)) 

 (2) (rplaca x y) 

 (3) (cons x (cdr y)) 

 (4) (rplacd x y) 


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

Ответ:

 (1) (cons (+ 1 2)(+ 1 2)) 

 (2) ((lambda (x)(cons x x))(+ 1 2)) 

 (3) (prog (x)(setq x (+ 1 2)) (return (cons x x))) 

 (4) (prog (x)(setq x (+ 1 2)) (print (cons x x))) 


Номер 3
Какие из форм вырабатывают одинаковые значения?

Ответ:

 (1) (rplacd x y) 

 (2) (rplaca x y) 

 (3) (cons (car x) y) 

 (4) (cons x (cdr y)) 




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