Основы функционального программирования | ointuit.ru

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

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

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

Отметьте, в чем подобны варианты и множества.
фиксированное число составляющих
возможна многоуровневая организация — иерархия
прав.ответ составляющие могут быть любой природы

Какие особенности множеств не характерны для вариантов?
прав.ответ многоуровневая организация
могут быть разносортные элементы
произвольный порядок задания составляющих

Какое из определений при попадании в тупик позволяет получить значение, зависящее от внутреннего контекста?
прав.ответ (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

Добавить комментарий


Яндекс.Метрика