Главная / Программирование /
Основы функционального программирования / Тест 5
Основы функционального программирования - тест 5
Упражнение 1:
Номер 1
Какое из перечисленных S-выражений равносильно (A B (C D) E)?
Ответ:
 (1) (A . (B . ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A B (C D) . E) 
 (3) (A B (C . D) E) 
Номер 2
Какое из перечисленных S-выражений напечатается как (A B (C D) E)?
Ответ:
 (1) (A B (C . (D . Nil)) E) 
 (2) (A B (C D) . E) 
 (3) (A B (C . D) E) 
Номер 3
Какое из перечисленных S-выражений может быть изображено как (A B (C D) E)?
Ответ:
 (1) (A (B ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A b (C . (D)) . (E)) 
 (3) (A B (C D) . E) 
 (4) (A B (C . D) E) 
Упражнение 2:
Номер 1
Какое из S-выражений равносильно (A B C (D E))?
Ответ:
 (1) (A B C (D . (E . Nil)) . Nil ) 
 (2) (A (B C) D (E)) 
 (3) (A B (C . (D . Nil)) E) 
Номер 2
Какое из S-выражений имеет ту же структуру, что и (A B C (D E))?
Ответ:
 (1) (A B C (D . (E . Nil)) . Nil) 
 (2) (A (B C) D (E)) 
 (3) (A B (C . (D . Nil)) E) 
Номер 3
Какое из S-выражений распечатается как (A (B C) D E)?
Ответ:
 (1) (A . (B . ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A (B C) D (E)) 
 (3) (A (B . (C . Nil )) D E) 
Упражнение 3:
Номер 1
Какое из S-выражений не равносильно (A (B C) D (E))?
Ответ:
 (1) (A . (B . ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A (B C) . (D ( E . Nil))) 
 (3) (A (B . (C . Nil)) D (E)) 
Номер 2
Какое из S-выражений структурно отличается от (A (B C) D (E))?
Ответ:
 (1) (A B (C . (D . Nil)) E) 
 (2) (A (B C) . (D (E))) 
 (3) (A . ((B C) D (E))) 
Номер 3
Какое из S-выражений не является представлением структуры (A (B C) D (E))?
Ответ:
 (1) (A . (B (C . (D . Nil)) . (E . Nil)) )) 
 (2) (A (B C) . (D (E))) 
 (3) (A . ((B C) D (E))) 
 (4) (A (B C) D . ( (E))) 
Упражнение 4:
Номер 1
Отметьте правильное создание именованной константы
Ответ:
 (1) (setq a 'b) 
 (2) (defconstant a 'a) 
 (3) (defparameter a 'b) 
Номер 2
Отметьте правильное введение локальной переменной x
Ответ:
 (1) (lambda (x y) (cons x y)) 
 (2) (cond ((eq x y)(cons x z))) 
 (3) ( lambda (y) (cons x x)) 
 (4) (lambda (z)(setq x (quote (A B C D) ))) 
Номер 3
Отметьте функцию со свободной переменной
Ответ:
 (1) (lambda (x y) (cons z y)) 
 (2) (lambda (x y) (cons y x)) 
 (3) (lambda (x) (quote (A B C D))) 
Номер 4
Отметьте создание глобальной переменной
Ответ:
 (1) (setq a 'b) 
 (2) (defconstant a 'a) 
 (3) (defun a 'a) 
Упражнение 5:
Номер 1
Какое выражение даст результат (A . B)?
Ответ:
 (1) (cons 'a 'b) 
 (2) ((lambda (y x) (cons x y)) 'a 'b) 
 (3) ((lambda (x) (cons x 'A)) 'b ) 
Номер 2
При вычислении какой формы получится результат (A . B)?
Ответ:
 (1) ((lambda (x y) (cons x y)) 'a 'b) 
 (2) ((lambda (y x) (cons x y)) 'a 'b) 
 (3) ((lambda (y x) (cons 'B y)) 'b 'a) 
Номер 3
Значение какого выражения - (A . B)?
Ответ:
 (1) (cons 'c 'b) 
 (2) ((lambda (x y) (list x y)) 'a 'b) 
 (3) ((lambda (y x) (cons x y)) 'a 'b) 
 (4) ((lambda (y x) (cons x y)) 'b 'a) 
Упражнение 6:
Номер 1
Которое из выражений даст результат (Альфа Центавра)?
Ответ:
 (1) (list ' Альфа ' Центавра) 
 (2) ((lambda (x y) (cons x y)) ' Альфа ' Центавра) 
 (3) ((lambda (x y) (list 'x 'y)) ' Альфа ' Центавра) 
Номер 2
Которое из выражений построит список (Альфа Центавра)?
Ответ:
 (1) ((lambda (x y) (list x y)) ' Альфа ' Центавра) 
 (2) ((lambda (x y) (cons x y)) ' Альфа ' Центавра) 
 (3) ((lambda (x y) (list y x )) ' Альфа ' Центавра) 
Номер 3
Которое из выражений даст результат (Альфа Центавра)?
Ответ:
 (1) ((lambda (x ) (list x ' Центавра)) ' Альфа ) 
 (2) ((lambda (x y) (list x ' Центр)) ' Альфа ' Центавра ) 
 (3) ((lambda (x y) (cons x y)) ' Альфа ' Центавра) 
 (4) ((lambda (x y) (list 'x 'y)) ' Альфа ' Центавра) 
Упражнение 7:
Номер 1
Которое из выражений не даст результат (Альфа Центавра) ни при каком значении переменной?
Ответ:
 (1) (cons x '(Центавра)) 
 (2) ((lambda ( y) (cons x y)) ' Альфа) 
 (3) ((lambda (b) (list b x )) ' Альфа) 
 (4) ((lambda (b) (cons x b)) '(Центавра)) 
Номер 2
Которое из выражений не может дать результат (Альфа Центавра) независимо от значения переменной?
Ответ:
 (1) (cons '(Центавра) x) 
 (2) ((lambda ( y) (cons y x)) ' Альфа) 
 (3) ((lambda (b) (list b x)) ' Альфа) 
 (4) ((lambda (b) (list x b)) '(Центавра)) 
Номер 3
Которое из выражений не даст результат (Альфа Центавра) при любых значениях переменной?
Ответ:
 (1) (cons ' Альфа x) 
 (2) ((lambda ( y) (cons y x)) ' Альфа) 
 (3) ((lambda (b) (list x b)) ' Альфа) 
 (4) ((lambda (b) (cons x (cons b Nil) )) '(Центавра)) 
Упражнение 8:
Номер 1
Какие из перечисленных S-выражений равносильны?
Ответ:
 (1) (A . (B . ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A B (C . (D . Nil)) E) 
 (3) (A B (C D) . E) 
 (4) (A B (C . D) E) 
Номер 2
Отметьте какие из перечисленных S-выражений равносильны?
Ответ:
 (1) (A . (B . ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A (B C) D (E)) 
 (3) (A B C D E) 
 (4) (A B (C . (D . Nil)) E) 
 (5) (A B (C D) . E) 
Номер 3
Отметьте S-выражение, не равносильное остальным?
Ответ:
 (1) (A . (B . ((C . (D . Nil)) . (E . Nil))) ) 
 (2) (A B (C . (D . Nil)) E) 
 (3) (A . (B . ((C D) . (E))) ) 
 (4) (A (B C) D (E)) 
Упражнение 9:
Номер 1
Отметьте правильное создание именованной константы
Ответ:
 (1) (set actor 'function) 
 (2) (defconstant pi 3.14151926) 
 (3) (defparameter x 'bee) 
 (4) (defun a-funct 'options) 
Номер 2
Отметьте правильное введение связной переменной x
Ответ:
 (1) (lambda (x) (cons x 'TAIL)) 
 (2) (cond ((eq 'ACT y)(cons "ACT z))) 
 (3) (lambda (a b c d) (cons x x)) 
 (4) (lambda (z) (quote (x is ABCD to АБВГДЕ))) 
Номер 3
Отметьте выражения со свободными переменными
Ответ:
 (1) (lambda (x y) (cons z y)) 
 (2) (cond ((eq x y)(cons x 'z))) 
 (3) (lambda (y) (cons x x)) 
 (4) (lambda (x) (quote (A B C D)))