Ответы на курс: Основы функционального программирования
Отметьте, в чем подобны варианты и множества.
|
фиксированное число составляющих |
|
возможна многоуровневая организация — иерархия |
|
составляющие могут быть любой природы |
Какие особенности множеств не характерны для вариантов?
|
многоуровневая организация |
|
могут быть разносортные элементы |
|
произвольный порядок задания составляющих |
Какое из определений при попадании в тупик позволяет получить значение, зависящее от внутреннего контекста?
|
(defun escape (x) (throw ‘esc (print (list ‘ESCAPE x)))) |
|
(defun escape (x) (throw ‘esc Nil)) |
|
(defun escape (x) (throw ‘esc ‘ESCAPE)) |
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает более двух обращений к самой себе?
|
(a b d) e c |
|
() a c |
|
(b a c d) a b |
Отметьте имя автора языка программирования, поддерживающего фукнциональный подход к решению сложных задач?
|
Джекоб Шварц |
|
Джон Мак-Карти |
|
Джон Бэкус |
Кто впервые сформулировал идеи языка программирования, послужившие основой для функционального программирования?
|
Николас Вирт |
|
Тони Хоар |
|
Джон Мак-Карти |
Какой из перечисленных механизмов языка Лисп унаследован новыми языками программирования, например Perl и другие?
|
предельно простой синтаксис |
|
ассоциативные таблицы |
|
самоопределение языка программирования |
Решение какой задачи было воспринято как ответ на вопрос о реализуемости искусственного разума?
|
программа игры в шахматы |
|
автоматическая проверка доказательств теорем |
|
Auto-CAD — программный комплекс средств инженерной компьютерной графики для нужд проектирования: расчеты, чертежи и эскизы |
|
«Элиза» — программа-собеседник, имитирующая диалог с психоаналитиком |
Отметьте название языка программирования, в котором впервые поддержаны идеи функционального программирования
|
Lisp |
|
Prolog |
|
Python |
Какое из приведенных данных представляет собой самое простое составное S-выражение?
|
( cons (a b) NIL ) |
|
((one . один) (two. два) (three . три)) |
|
(A . B) |
Какое из приведенных данных представляет собой список?
|
( ( cons (a b) NIL )) |
|
( ( cons (a b) NIL ) |
|
((a . один) (b . два) (c . три) . пять) |
Какой из приведенных текстов не представляет собой ни список, ни сложное S-выражение?
|
(один, два, три, четыре, два) |
|
;; (a b c) |
|
(eq a (b . c)) |
Какое из приведенных данных представляет собой сложное S-выражение?
|
((one . один) (two. два) (three . три)) |
|
list |
|
( ( cons (a b) NIL ) |
Что можно подправить, чтобы форма (cons ‘один ‘два ‘три) имела значение?
|
поставить апострофы перед атомами |
|
заменить атомы списками |
|
оставить в списке только два аргумента |
Как можно воздействовать на форму (cons (a ‘два) (b ‘семь)), чтобы интерпретатор обязательно выдал ее значение, а не диагностическое сообщение?
|
в начало каждого из аргументов следует вставить бинарную функцию, например, (eq a ‘два), (cons b ‘семь) в результате получится (cons (eq a ‘два) (cons b ‘семь)) |
|
символы a и b можно заменить на имена унарных функций над атомами, например atom или quote, что дает (cons (atom ‘два) (quote ‘семь)) |
|
заменить a и b на атом car, что дает (cons (car ‘два) (car ‘семь)) |
Какие из приведенных данных представляют собой список?
|
((a . atom) (b . binary) (c . char) . d) |
|
( ( cons (a b) NIL ) |
|
(car (quote (a b c d))) |
|
( ( cons (a b) NIL )) |
Как можно изменить форму (cons (a три) (b четыре)), чтобы получить значение cons от заданных списков, а не диагностическое сообщение?
|
убрать лишние скобки в аргументах, что дает (cons a ‘три b ‘четыре) |
|
нужно поставить апосторофы таким образом (cons (‘a ‘три) (‘b ‘четыре)) |
|
перед каждым из аргументов вставить апостроф, блокирующий их вычисление, что дает (cons ‘(a ‘три) ‘(b ‘четыре)) |
На каком наборе данных функция append (соединение двух списков в один) даст результат сразу, без рекурсивных обращений к себе?
|
(a (b c) d) () |
|
Nil ((a b) c d) |
|
(a b) (c d) |
На каких данных расход памяти (число cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) равен длине последнего из аргументов?
|
(x y) z (a b a z b z) |
|
(x) y (a b (y d) x c) |
|
x (y z) ((a y z) b c d ) |
|
x (y z) (a b x y z) |
Какие из списков представляют перечень ветвей условного выражения (можно вставить cond вслед за первой скобкой)?
|
(((eq x (CAAR al)) (CAR x)) al) ((QUOTE T) (assoc x (CDR al))) |
|
((eq(caar c)(cadar c)) (evcon(cdr c)a)) |
|
(prog ()((null x) al) (T (CONS (CONS (CAR x) (CAR Y) ) (pairlis (CDR x) (CDR y) al) )) |
На каких данных функция member (поиск элемента в списке) выполнит ровно три обращения к себе?
|
a (c d e a f) |
|
f (a b c d e) |
|
d (a b c d e f) |
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает менее трех обращений к самой себе?
|
(b c d e a) a b |
|
(a b c d e) f c |
|
(a b c d) a c |
На каком данном функция append (сцепление двух списков) даст результат сразу, без рекурсии?
|
(a b) (c d) |
|
(a b c d) () |
|
() (a b c) |
|
Nil ((a b) c d) |
Какие из перечисленных форм выработает результат (1 4 7 2 5 8 3 6 9)?
|
(maplist #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcan #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcar #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
При вычислении какой из форм не возникнет проблем с выполнением отображающей функции на всех наборах аргументов?
|
(mapc #’+ ‘(1 2 3) ‘(a b c)) |
|
(mapcar #’cons ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(maplist #’append ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
Какая из форм формально дает результат, отличающийся от построенной структуры данных?
|
(mapc #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcar #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
Какая из перечисленных форм имеет значение (5 7 9)?
|
(mapl #’* ‘(1 2 3) ‘(4 5 6)) |
|
(mapc #’+ ‘(1 2 3) ‘(4 5 6)) |
|
(mapcar #’+ ‘(1 2 3) ‘(4 5 6)) |
При вычислении какой из форм формальный результат не совпадает с построенной структурой?
|
(mapcar #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapl #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
В каком выражении отображающая функция не выполнится из-за несоответствия числа аргументов?
|
(maplist #’CONS ‘(7 8 9)) |
|
(mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapc #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
В какой из форм отображающая функция не выполнится из-за несоответствия числа аргументов?
|
(mapcar #’CAR ‘(4 5 6) ‘(7 8 9)) |
|
(mapc #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
Какое из выражений при вычислении не искажает исходные данные?
|
(mapc #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcon #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcan #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
Какое из выражений корректно вычислит отображающую функцию на всех наборах аргументов?
|
(mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapc #’+ ‘(1 2 3) ‘(a b c)) |
|
(mapcar #’cons ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
Результат какой из форм совпадает с фактически построенной структурой?
|
(mapc #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
|
(mapl #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9)) |
Какое из перечисленных S-выражений равносильно (A B (C D) E)?
|
(A B (C D) . E) |
|
(A . (B . ((C . (D . Nil)) . (E . Nil))) ) |
|
(A B (C . D) E) |
Какое из S-выражений структурно отличается от (A (B C) D (E))?
|
(A . ((B C) D (E))) |
|
(A B (C . (D . Nil)) E) |
|
(A (B C) . (D (E))) |
Какое из S-выражений равносильно (A B C (D E))?
|
(A (B C) D (E)) |
|
(A B (C . (D . Nil)) E) |
|
(A B C (D . (E . Nil)) . Nil ) |
Значение какого выражения — (A . B)?
|
((lambda (x y) (list x y)) ‘a ‘b) |
|
(cons ‘c ‘b) |
|
((lambda (y x) (cons x y)) ‘a ‘b) |
|
((lambda (y x) (cons x y)) ‘b ‘a) |
Какое из перечисленных S-выражений напечатается как (A B (C D) E)?
|
(A B (C . (D . Nil)) E) |
|
(A B (C . D) E) |
|
(A B (C D) . E) |
Какое из перечисленных S-выражений может быть изображено как (A B (C D) E)?
|
(A B (C . D) E) |
|
(A b (C . (D)) . (E)) |
|
(A (B ((C . (D . Nil)) . (E . Nil))) ) |
|
(A B (C D) . E) |
Которое из выражений не может дать результат (Альфа Центавра) независимо от значения переменной?
|
(cons ‘(Центавра) x) |
|
((lambda (b) (list b x)) ‘ Альфа) |
|
((lambda (b) (list x b)) ‘(Центавра)) |
|
((lambda ( y) (cons y x)) ‘ Альфа) |
Отметьте выражения со свободными переменными
|
(cond ((eq x y)(cons x ‘z))) |
|
(lambda (x y) (cons z y)) |
|
(lambda (y) (cons x x)) |
|
(lambda (x) (quote (A B C D))) |
Какие из перечисленных S-выражений равносильны?
|
(A B (C D) . E) |
|
(A . (B . ((C . (D . Nil)) . (E . Nil))) ) |
|
(A B (C . D) E) |
|
(A B (C . (D . Nil)) E) |
Какой список значений аргументов соответствует списку параметров вида (x y z &rest t)?
|
(1 (2 3 4 5)) |
|
((CONS ‘a ‘b )) |
|
(‘CONS (car x)(cdr x)) |
Выберите определение функции, чтобы получить список из единиц такой же длины как аргумент:
|
(defun LN (L) (cond ((null L)Nil) (T (Cons L (LN (cdr L)))) )) |
|
(defun LN (L) (cond ((null L)Nil) (T (Cons 1 (LN (cdr L)))) ) L) |
|
(defun LN (L) (cond (L (Cons 1 (LN (cdr L)))) (1 L) )) |
Какой список аргументов не соответствует списку формальных параметров (x y z &rest t)?
|
(‘CONS (car x)(cdr x)) |
|
(1 2 3 4 5) |
|
((a)(b) (c)) |
|
Nil |
Какая из форм не равнозначна остальным?
|
(union Nil ‘(1 2 3 1 2 3)) |
|
(union ‘(1 2 3) ‘(1 2 3)) |
|
(union ‘(1 2 3 ) NIL ) |
Какая форма последовательно последовательно вычислит выражения e1 e2 3, а потом выдаст значение e1 результат?
|
(prog (x) (setq x e1) e2 e3 (print x)) |
|
((lambda (a1 a2 a3) a1) e1 e2 e3) |
|
(let ((a1 e1) (a2 e2) (a3 e3)) (quote e1) |
Какой из списков фактических параметров не соответствует списку формальных параметров вида (x y z &rest t)?
|
(‘CONS (car x)(cdr x)) |
|
(1 (2 3 4 5)) |
|
((a)(b) (c)) |
|
(1 2 3 4 5) |
Какая из форм построит список уникальных чисел (использовать определение объединения из лекции)?
|
(union Nil ‘(1 2 3 1 2 3)) |
|
(union ‘(1 2 3) ‘(1 2 3 2)) |
|
(union ‘(1 2 3 1 2 3) Nil) |
Какая из перечисленных команд понадобятся при компиляции выражения (CADR n)?
|
s e (LDF f . c) d -> ((f . e) . s) e c d |
|
s e (LD n . c) d -> (x . s) e c d , где x — это значение (N-th n e ) |
|
s e (JOIN ) (c . d) -> s e c d |
Какое выражение не может быть исходным для кода программы на языке абстрактной машины (LD @n CDR CAR)?
|
(CAR (CDR n)) |
|
(CADR n ) |
|
(EQ (ATOM n) ‘ CAR ) |
Какое выражение может при компиляции дать объектный код ( LD @n CDR CAR )?
|
(EQ (CAR n) ‘QUOTE ) |
|
(COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) )) |
|
(LET ((a (CDR n)))(CAR a)) |
Какая из перечисленных команд SECD не меняет размер стека результатов?
|
(a . s) e (ADD1 . c) d -> (a+1 . s) e c d |
|
(a b . s) e (EQ . c) d -> (t . s) e c d , где t — логическое значение. |
|
(a b . s) e (CONS . c) d -> ((a . b) . s) e c d |
|
s e (LDC q . c) d -> (q . s) e c d |
Какая из перечисленных команд SECD не влияет на размер стека результатов?
|
((a . b) . s) e (CAR . c) d -> (a . s) e c d |
|
(a b . s) e (CONS . c) d -> ((a . b) . s) e c d |
|
(a b . s) e (EQ . c) d -> (t . s) e c d , где t — логическое значение. |
|
s e (LDC q . c) d -> (q . s) e c d |
Какое выражение эквивалентно объектному коду ( LD @n CDR CAR )?
|
(EQ (CAR n) ‘QUOTE ) |
|
(CAR (CDR n)) |
|
(COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) )) |
Какая из перечисленных команд SECD сохраняет размер стека результатов?
|
s e (LDC q . c) d -> (q . s) e c d |
|
(a . s) e (SUB1 . c) d -> (a-1 . s) e c d |
|
(a b . s) e (EQ . c) d -> (t . s) e c d , где t — логическое значение. |
|
(a b . s) e (CONS . c) d -> ((a . b) . s) e c d |
Какие из перечисленных команд SECD не меняют размер стека результатов?
|
(a . s) e (ADD1 . c) d -> (a+1 . s) e c d |
|
(a b . s) e (EQ . c) d -> (t . s) e c d , где t — логическое значение |
|
(a b . s) e (CONS . c) d -> ((a . b) . s) e c d |
|
((a . b) . s) e (CAR . c) d -> (a . s) e c d |
|
s e (LDC q . c) d -> (q . s) e c d |
|
(a . s) e (SUB1 . c) d -> (a-1 . s) e c d |
Какое из определений не использует функциональных переменных?
|
(defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))) |
|
(LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ) |
|
(defun YDOT(LAMBDA(X Y FN)(MAPCAR FN X Y)))))) |
Какие из определений содержат функциональные переменные?
|
(defun YDOT (X Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y))))) |
|
(LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )) |
|
(defun отобр (список ФН)(COND ((NULL список)NIL)(T(CONS(ФН список)(MAP(CDR список)FN))))) |
Какое из приведенных определений можно компилировать без информации о типе свободной переменной
|
(defun YDOT(LAMBDA(Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X))) |
|
(LAMBDA (A) (PROG (B С) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )) |
|
(lambda (v) (assoc X N v)) |
Какое из определений не содержит функциональных переменных?
|
(defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X))) |
|
(LAMBDA (A Fn) (PROG (B) S (SETQ B A) (SETQ C (CONS (Fn A) C)) (GO S) )) |
|
(defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))) |
В какое из определений не входят безымянные функции?
|
(defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))) |
|
(lambda (v) (funcall (lambda (x) (cons x x)) v) |
|
(defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X))) |
Какое из определений не содержат свободных переменных?
|
(defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X))) |
|
(lambda (v) (assoc X N v)) |
|
(LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )) |
Какое из определений не содержит безымянных функций?
|
(defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X))) |
|
(lambda (v) (funcall (lambda (x) (cons x x)) v) |
|
(LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )) |
Какая из перечисленных функций, строящих структуры данных, не имеет в системе Clisp деструктивных аналогов?
|
remove |
|
sort |
|
union |
|
reverse |
Какая из перечисленных функций, деструктурирущих данные, является в языке Clisp функциональным эквивалентом другой функции, сохраняющей исходные данные?
|
cons |
|
list |
|
Pairlis |
|
sort |
|
nconc |
Какая из перечисленных функций, строящих структуры данных, не может иметь деструктивных аналогов?
|
reverse |
|
union |
|
list |
|
remove |
Какая из перечисленных функций языка Clisp, деструктурирущих данные, может быть заменена на функциональный эквивалент, гарантирующих сохранение исходных данных?
|
Subst |
|
list |
|
sort |
|
nsubst |
|
Pairlis |
Отметьте форму, открывающую файл так, что в нем сохраняется вся попадавшая в него информация.
|
(open «history» :direction :output :if-exists :append :if-does-not-exist :create ) |
|
(open «output» :direction :output :if-exists :rename) |
|
(open «protocol» :direction :output :if-exists :overwrite :if-does-not-exist :error) |
Замена какой из перечисленных функций на имеющийся в языке Clisp деструктивный аналог повышает эффективность программ без потери функциональной эквивалентности?
|
pairlis |
|
union |
|
list |
|
sort |
Отметьте формы, открывающие файл так, что в нем можно сохранить результаты только текущего сеанса, без лишней информации.
|
(open file-in :direction :io ) |
|
(open «output» :direction :output :if-exists :rename :if-does-not-exist :create) |
|
(open «history» :direction :output :if-exists :append) |
Какая из форм позволит получить список атомов, имена которых содержат CAR, в системе программирования для языка Clisp?
|
(symbol-plist ‘fn) |
|
(apropos-list ‘CAR ) |
|
(symbol-plist ‘fn) |
|
(documentation ‘fn ‘function) |
Какая из форм позволит получить список атомов, имена которых содержат CAR, в системе программирования для языка Clisp?
|
(symbol-plist ‘fn) |
|
(documentation ‘fn ‘function) |
|
(symbol-plist ‘fn) |
|
(apropos-list ‘CAR ) |
Что из перечисленного можно рассматривать как объекты одного класса?
|
стул |
|
стол |
|
стан |
Что из перечисленного не стоит рассматривать как объект класса <одежда> ?
|
платье |
|
жилет |
|
сапоги |
|
шаровары |
Отметьте выражение, объявляющее новый метод.
|
(defclass alltd () ((type :accessor td)) (:documentation «everyting»)) |
|
(defmethod texrp ((x expr) (nt atom)) (setf (slot-value x ‘type) nt) (setf (td x) nt)) |
|
(defclass expr (alltd) ((sd :accessor ft)) (:documentation «C-expression»)) |
|
(setf e3 (make-instance ‘expr)) |
|
(setf (slot-value e3 ‘sd) (read)) |
|
(td e3) |
|
(texpr e3 ‘expr) |
Какую из перечисленных функций не стоит включать в общее семейство с остальными функциями?
|
площадь у вокзала |
|
объем цилиндра |
|
длина отрезка |
|
площадь круга |
Отметьте выражения, объявляющие новый экземпляр объекта.
|
(defmethod texrp ((x expr) (nt atom)) (setf (slot-value x ‘type) nt) (setf (td x) nt)) |
|
(texpr e3 ‘expr) |
|
(defclass alltd () ((type :accessor td)) (:documentation «everyting»)) |
|
(setf e3 (make-instance ‘expr)) |
|
(td e3) |
|
(setf (slot-value e3 ‘sd) (read)) |
|
(defclass expr (alltd) ((sd :accessor ft)) (:documentation «C-expression»)) |
Что из перечисленного не стоит рассматривать как объект класса <канцелярские товары>?
|
тетрадь |
|
фломастер |
|
ежедневник |
|
книга |
Какое из перечисленных выражений дает новое значение полю существующего объекта?
|
(defclass expr () ((type :accessor td) (sd :accessor ft)) (:documentation «C-expression»)) |
|
(setf (slot-value e3 ‘sd) (read)) |
|
(td e3) |
|
(setf e3 (make-instance ‘expr)) |
|
(defmethod texrp ((x expr) (nt atom)) (setf (slot-value x ‘type) nt) (setf (td x) nt)) |
Какая из ловушек позволяет поймать внутреннее прерывание?
|
(progn (catch ‘escape (cond ((null xl) (throw ‘esc Nil))))) |
|
(progn (catch ‘OK (catch ‘esc : (cond ((CAR xl)(throw ‘OK xl)) ((null xl) (throw ‘esc Nil))):))) |
|
(progn (catch ‘esc : (cond ((null xl)Nil) ((cond ((null xl) (throw ‘esc Nil))))):)) |
В чем выражаются отличия структуры множеств от вариантов?
|
произвольное число составляющих |
|
могут быть разносортные элементы |
|
структура множества определяется всей совокупностью различимых элементов |
Отметьте функции для работы с множествами
|
reverse |
|
intersection |
|
union |
|
set-difference |
|
delete |
|
member |
Какая из форм не содержит подвыражений, допускающих замену на их значения?
|
(cons 1 (cons 2 3)) |
|
(cons ‘A (car(cons x (cons ‘B y)))) |
|
(cond (x (car(cons ‘A ‘B)))(T (cons 1 (cons 2 3)))) |
Вычисление каких подформул не может происходить вообще?
|
предикаты в ветвлениях |
|
параметры специальных функций |
|
непомеченные выражения, расположенные сразу вслед за RETURN в форме PROG |
Вычисление какой подформулы не гарантировано при исполнении общей формулы?
|
произвольное число аргументов функции LIST |
|
параметры обычных функций |
|
предикаты в ветвлениях |
Какая из форм содержит общие подвыражения, которые целесообразно вычислить предварительно, чтобы избежать повторного вычисления одних и тех же выражений?
|
(cons ‘A (car(cons x (cons ‘A x)))) |
|
(cond (x (car(cons ‘A ‘B)))(T (cons 1 (cons 2 3)))) |
|
(list 1 (cons 2 x) 2 (cons 2 x) 3 (cons 2 x) |
|
(car(cons 1 (cons x 1))) |
Какая из форм не содержит константных подвыражений?
|
(cond (x (car(cons ‘A ‘B)))(T (cons 1 (cons 2 3)))) |
|
(car(cons 1 (cons x 3))) |
|
(cons 1 (cons 2 3)) |
Какая из перечисленных форм содержит подвыражения, которые можно не вычислять, т.к. их значения не влияют на результат?
|
(cond (x (cons ‘A x)) (y (cons 1 (cons 2 y)) )) |
|
(car(cons 1 (cons 2 3))) |
|
(cons 1 (cons 2 3)) |
Вычисление каких подформул вообще невозможно, точнее, бессмысленно?
|
выражения, зависящие от свободных переменных, значения которых не определены |
|
предикаты в ветвлениях |
|
параметры внешних функций |
В какой из перечисленных форм можно вычислять не все подвыражения независимо от значений переменных?
|
(cond (cons ‘A (car(cons x y)) ) (cons ‘one x) ) (T (cons ‘two y)) ) |
|
(cond (T(car(cons ‘A ‘B)))((cons x (cons 2 3))T)) |
|
(cond (x (cons x (cons 2 3)))) |
В какой из перечисленных форм все подвыражения необходимо вычислить?
|
(cons 1 (cons 2 3)) |
|
(eq ‘A (car(cons ‘A (cons ‘B ‘C)))) |
|
(car(cons 1 (cons 2 3))) |
Вычисление какой подформулы может происходить не при каждом исполнении общей формулы?
|
параметры специальных функций, например, операторы в форме prog |
|
параметры обычных функций |
|
самые левые предикаты в ветвлениях |
Какая из функций соответствует спецификации аргументов: List(X) -> List(X) ?
|
(lambda (xl) (cond (xl (cond ((cons ‘A (car xl))T))))) |
|
(lambda (x ) (reverse x)) |
|
(lambda (x ) (cons ‘A x)) |
Спецификации результатов какой из функций соответствует формуле: (X List(X)) -> List(X) ?
|
(lambda (x xl) (cond (xl (cond ((eq x (car xl))T))))) |
|
(lambda (x y) (delete x y)) |
|
(lambda (x y) (eq y x)) |
Какая из функций соответствует спецификации результатов: (X List(X)) -> List(X) ?
|
(lambda (x xl) (cond (xl (cond ((eq x (car xl))xl))))) |
|
(lambda (x y) (cons y ‘A)) |
|
(lambda (x y) (member y x)) |
Какая из спецификаций аргументов и результатов соответствует определению функции:
(lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
|
(Atom List(Some)) -> List(Some) |
|
(Atom List(Atom)) -> List(Atom) |
|
(Some List(Some))-> List(Some) |
Какая из функций не соответствует спецификации результатов (X List(X)) -> List(X)?
|
(lambda (x xl) (cond (xl (cond ((eq x (car xl))xl))))) |
|
(lambda (x y) (eq x y)) |
|
(lambda (x y) (cons x y)) |
Аргументы какой из функций должны соответствовать спецификации: List(X) -> List(X) ?
|
(lambda (xl) (cond (xl (cond ((eq ‘A xl)T))))) |
|
(lambda (x ) (append x ‘(1 2 3))) |
|
(lambda (x y) (cons x y)) |
Какие из спецификаций аргументов и результатов соответствуют определению функции:
(lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
|
(Atom List(Some) ) -> List(Some) |
|
( Atom List(Atom)) -> List(Some) |
|
( Some List(Some)) -> List(Atom) |
Какие из функций соответствуют спецификации или аргументов, или результатов, но не того и другого сразу:
(X List(X)) -> List(X)
|
cons |
|
(lambda (x xl) (cond (xl (cond ((eq x (car xl))T))))) |
|
list |
Выберите спецификацию, которой заведомо не соответствует тест ((a 1)( b 2)( 3 4)).
|
List ({Atom, Number}) |
|
List(List(Atom)) |
|
List ( List(Atom Number)) |
Какой спецификации соответствует данный тест ((a . 1)( b . 2)( 3 . 4)).
|
List ({Atom, Number}) |
|
List(List(Atom)) |
|
List ((Atom . Number)) |
Выберите тест, соответствующий спецификации List (Atom) => List (Number).
|
((A) 1 () 2 () 3) => (1 2 3) |
|
(1 2 3 4) => () |
|
(A B C ) => B |
Отметьте тест, на котором сработает функция:
(defun Assoc (x al) (cond (al(cond ((eq (x (caar al))) (car al))))
|
( ((A . S))) => S |
|
(A ( X A B C )) => (A B C) |
|
(A ((A . B)) ) => (A . B) |
Отметьте спецификации, которым соответствует функция Subst.
|
(Atom Atom S (Atom)) => S (Atom) |
|
(Atom Some List (Atom)) => List (Some) |
|
(Atom Some S (Atom)) => S (Some) |
Какой из перечисленных языков программирования сложился как эффективная система функционального программирования?
|
Python |
|
Forth |
|
Pascal |
Какой из перечисленных языков программирования сложился как высокопроизводительная система функционального программирования?
|
Setl |
|
Sisal |
|
Apl |
Отметьте систему, разработанную на базе Лиспа.
|
Emacs – текстовый редактор в ОС UNIX |
|
ТОР – компактный текстовый редактор для MSX |
|
Q – встраиваемый текстовый редактор |
Какой механизм реализации Лисп-систем встречается в системах программирования на базе языка Perl?
|
управление синтаксисом приема данных |
|
открытый доступ из программы к основным компонентам системы |
|
понятие ассоциативной таблицы, реализованной как хэш-таблица |
Какая из перечисленных команд SECD удлиняет стек результатов (S)?
|
s e (LD n . c) d -> (x . s) e c d , где x — это значение (N-th n e ) |
|
(a b . s) e (CONS . c) d -> ((a . b) . s) e c d |
|
(a . s) e (ATOM . c) d -> (t . s) e c d |
Какие из определений содержит безымянную функциональную константу?
|
(LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )) |
|
(defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X))) |
|
(defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))) |
|
(lambda (v) (funcall (cond ((E P)S1) (T(E S2)) ) v) |
Какой из перечисленных языков программирования сложился система функционального программирования для исследовательских целей?
|
ML |
|
Simula |
|
Pascal |
Добавить комментарий
Для отправки комментария вы должны авторизоваться.