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

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

Правильные ответы выделены зелёным цветом.
Все ответы: В курсе изложены основы функционального программирования и методы его применения при решении сложных задач на стыке искусственного интеллекта и системного программирования.
В каком языке программирования впервые реализованы идеи функционального программирования?
(1) Lisp
(2) Scheme
(3) Haskell
Что из перечисленного удобно рассматривать как объект того же класса, что и <кресло>?
(1) диван
(2) стул
(3) этюдник
(4) шкаф
(5) трюмо
(6) стол
Какое из определений явно сигнализирует о попадании в тупик?
(1) (defun escape () (throw 'esc Nil))
(2) (defun escape (x) (throw 'esc x))
(3) (defun escape (x) (throw 'esc (print x)))
(4) (defun escape () (throw 'esc 'ОК))
Какая из перечисленных форм содержит подвыражения, которые можно не вычислять, т.к. их значения не влияют на результат?
(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)) ))
Какая из функций соответствует спецификации аргументов и результатов (X List(X)) -> List(X)?
(1) (lambda (x y) (cons x y))
(2) (lambda (x y) (eq x y))
(3) (lambda (x) (cond (x (cond ((eq 'A (car x))x)))))
Отметьте тест, соответствующий спецификации List (Atom) => List (Number).
(1) (A B C) => (1 2 3)
(2) (B ( A) C) => (1 2 3)
(3) (1 2 3) => (A B)
Какой из перечисленных стилей программирования сложился под влиянием функционального программирования?
(1) логическое программирование
(2) императивно-процедурное программирование
(3) высоко производительное программирование
Какое из приведенных данных представляет собой составное S-выражение?
(1) (car (quote (cons a b)))
(2) atom
(3) ( cons (a b) NIL )
На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно три шага (обращения к самой себе)?
(1) a (c d e a f)
(2) a (a b c d e f)
(3) f (a b c d e)
Какая из перечисленных форм имеет значение (5 7 9)?
(1) (mapcar #'+ '(1 2 3) '(4 5 6))
(2) (mapc #'+ '(1 2 3) '(4 5 6))
(3) (mapl #'* '(1 2 3) '(4 5 6))
Какое из перечисленных 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)
Отметьте определение функции, дающей в результате список из единиц?
(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)))) ))
Какая из перечисленных команд SECD не меняет размер стека результатов?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a . s) e (ADD1 . c) d -> (a+1 . s) e c d
(3) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(4) (a b . s) e (EQ . c) d -> (t . s) e c d , где t - логическое значение.
В каком определении имеются свободные переменные?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X )))
(3) (lambda (v) (cons 'ATOM (eq 'COND v)))
Какая из перечисленных функций, строящих структуры данных, имеет в языке Clisp деструктивный аналог, позволяющий повышать эффективность функциональных программ?
(1) append
(2) list
(3) pairlis
(4) sort
Какое из перечисленных свойств не присуще функциональному программированию как методу организации процессов?
(1) эффективность реализации алгоритмов
(2) близость структур данных к специфике оборудования
(3) абстрагирование данных и программ их обработки
Что из перечисленного не стоит рассматривать как объект класса <одежда> ?
(1) платье
(2) жилет
(3) сапоги
(4) шаровары
Отметьте формы, эквивалентные логической конъюнкции - "a и b".
(1) (cond (b T) (T Nil))
(2) (cond (b a) (T Nil))
(3) (cond ((eq a b) a) (T Nil))
(4) (cond (a b) (T Nil))
(5) (cond (a T) (T b))
В какой из перечисленных форм все подвыражения необходимо вычислить?
(1) (car(cons 1 (cons 2 3)))
(2) (eq 'A (car(cons 'A (cons 'B 'C))))
(3) (cons 1 (cons 2 3))
Какая из функций не требует соответствия спецификации аргументов вида: (X List(X)) -> List(X)?
(1) (lambda (x y) (cond (x (cond ((eq y (car x))x)))))
(2) (lambda (x y) (cons x (cdr y)))
(3) (lambda (x y) (eq x (car y)))
Отметьте тест, соответствующий спецификации List (Atom) => List ({Number, Atom}).
(1) (A B C 1 2 3) => (1 ОДИН 2 ДВА 3 ТРИ)
(2) (1( 2) 3) => (1 2 3)
(3) (1 2 3) => ((1) () 2 3)
Какой из перечисленных языков программирования сложился как эффективная система функционального программирования?
(1) Python
(2) Forth
(3) Pascal
Какое из приведенных данных представляет собой список?
(1) ((a . один) (b . два) (c . три) . пять)
(2) ( ( cons (a b) NIL )
(3) ( ( cons (a b) NIL ))
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает более двух обращений к самой себе?
(1) (a b c d) d a
(2) (b a c d) a b
(3) () a c
Какая из форм безопасна для исходных данных?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcon #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapcan #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Какое из 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)
Какая из форм построит список уникальных чисел (использовать определение объединения из лекции)?
(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))
Какая из перечисленных команд SECD уменьшают размер стека результатов (S)?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(3) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(4) (a . s) e (ATOM . c) d -> (t . s) e c d
Какое из определений не содержат свободных переменных?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (lambda (v) (assoc X N v))
Какая из перечисленных функций, строящих структуры данных, не может иметь деструктивных аналогов?
(1) remove
(2) reverse
(3) union
(4) list
Кто впервые сформулировал идеи языка программирования, послужившие основой для функционального программирования?
(1) Джон Мак-Карти
(2) Николас Вирт
(3) Тони Хоар
Что из перечисленного можно рассматривать как основную характеристику объекта класса "кривые второго порядка"?
(1) коэффициенты уравнения для прорисовки линии
(2) толщина линии при рисовании
(3) координаты точек пересечения с осями
Какая из ловушек поймает внутреннее прерывание?
(1) (progn (catch 'esc : (cond ((null xl) (throw 'esc Nil))):))
(2) (progn (catch 'esc : (cond ((null xl)Nil) ((cond ((null xl) (throw 'esc Nil))))):)
(3) (progn (catch 'escape (cond ((null xl) (throw 'esc Nil)))))
В какой из перечисленных форм необходимость вычислять все подвыражения зависит от значений переменных?
(1) (car(cons 1 (cons x y)))
(2) (car(cons x (cons 'B 'C)))
(3) (cond (x (car(cons 'A 'B)))(T Nil))
Какая из функций соответствует спецификации аргументов: List(X) -> List(X) ?
(1) (lambda (x ) (reverse x))
(2) (lambda (xl) (cond (xl (cond ((cons 'A (car xl))T)))))
(3) (lambda (x ) (cons 'A x))
Отметьте тест, соответствующий спецификации List (List(Atom)) => List (Atom).
(1) ( (a) (b c) (d e f) ) => (1 2 3)
(2) (1 2 3) => (1 2 3)
(3) ((1)( 2) (3)) => (A . B)
Какие из стилей программирования созвучен идеям Лиспа?
(1) символьное программирование
(2) компонентное программирование
(3) машинно-ориентированное программирование
Какой из приведенных текстов не представляет собой ни список, ни сложное S-выражение?
(1) ;; (a b c)
(2) (eq a (b . c))
(3) (один, два, три, четыре, два)
На каком наборе данных функция append (соединение двух списков в один) даст результат сразу, без рекурсии (обращений к самой себе)?
(1) (a b) (c d)
(2) () (a b c)
(3) (a b c d) ()
Какая из форм может разрушить исходные данные?
(1) (mapcan #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Какое из 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))
Какая форма последовательно вычислит выражения 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)
Какая из перечисленных команд SECD изменяет состояние дампа (D)?
(1) s e (JOIN) (c . d) -> s e c d
(2) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(3) (a . s) e (ATOM . c) d -> (t . s) e c d
Какое из приведенных определений требует при компиляции информации о типе свободных переменных?
(1) (LAMBDA (A) (PROG (B С) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
Какая из перечисленных функций, деструктурирущих данные, является в языке Clisp функциональным эквивалентом другой функции, сохраняющей исходные данные?
(1) nconc
(2) cons
(3) list
(4) Pairlis
(5) sort
Чьи идеи были выбраны Джоном Мак-Карти в качестве семантической основы языка Лисп?
(1) Тьюринга
(2) Поста
(3) Маркова
(4) Чёрча
Какую из перечисленных функций имеет смысл рассматривать как метод с именем <расстояние>?
(1) место в кинозале
(2) длина дороги
(3) привокзальная площадь
(4) гостиничный номер
Отметьте функции для работы с множествами
(1) delete
(2) member
(3) set-difference
(4) union
(5) intersection
(6) reverse
Какая из форм не содержит константных подвыражений?
(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))))
Какая из функций соответствует спецификации результатов: (X List(X)) -> List(X) ?
(1) (lambda (x y) (cons y 'A))
(2) (lambda (x y) (member y x))
(3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
Отметьте тест, на котором сработает функция: (defun Assoc (x al) (cond (al(cond ((eq (x (caar al))) (car al))))
(1) (A ((A . B)) ) => (A . B)
(2) (A ( X A B C )) => (A B C)
(3) ( ((A . S))) => S
Отметьте стандартизованный диалект языка Лисп, активно используемый в наши дни.
(1) Common Lisp
(2) GoldLisp
(3) InterLisp
Какое из приведенных S-выражений может играть роль представления функций в Лисп-программе?
(1) (Label Первый Car)
(2) (defun fn (x ) (cons x x))
(3) (lambda car x)
Какая из форм формально дает результат, отличающийся от построенной структуры данных?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapc #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте правильное создание именованной константы
(1) (setq a 'b)
(2) (defconstant a 'a)
(3) (defparameter a 'b)
Какая из форм выдает то же значение, что и (cons y (cdr x))?
(1) (rplaca x y)
(2) (cons x (cdr y))
(3) (rplacd x y)
Какая из перечисленных команд понадобятся при компиляции выражения (CADR n)?
(1) s e (LD n . c) d -> (x . s) e c d , где x - это значение (N-th n e )
(2) s e (JOIN ) (c . d) -> s e c d
(3) s e (LDF f . c) d -> ((f . e) . s) e c d
Какое из определений содержит функциональные переменные?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(4) (lambda (v) (assoc X N v))
Отметьте форму, открывающую файл так, что в нем сохраняется вся попадавшая в него информация.
(1) (open "history" :direction :output :if-exists :append :if-does-not-exist :create )
(2) (open "output" :direction :output :if-exists :rename)
(3) (open "protocol" :direction :output :if-exists :overwrite :if-does-not-exist :error)
Какой из перечисленных механизмов реализации языка Лисп способствовал практическому успеху функционального программирования?
(1) автоматизация повторного использования памяти - "сбор мусора"
(2) математическая основа исходных понятий
(3) отсутствие "синтаксического сахара" в представлении программ
Какую из перечисленных функций не стоит включать в общее семейство с остальными функциями?
(1) длина отрезка
(2) площадь круга
(3) объем цилиндра
(4) площадь у вокзала
Отметьте, в чем схожи варианты и множества.
(1) неограниченное число составляющих
(2) строятся из однотипных объектов
(3) одноуровневая организация
В какой из перечисленных форм возможность не вычислять все подвыражения не зависит от значений переменных?
(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))))
Какая из функций не соответствует спецификации результатов (X List(X)) -> List(X) ?
(1) (lambda (x y) (member y x))
(2) (lambda (x y) (cons x Nil ))
(3) (lambda (x y) (list x x x ))
Отметьте тест, на котором не может сработать функция: (defun Assoc (x al) (cond (al(cond ((eq (x (caar al))) (car al))))
(1) (A ((A . B)) …) => (A . B)
(2) (A ( X A B C … )) => (A B C)
(3) ( ((A . S))) => S
Отметьте систему, разработанную на базе Лиспа.
(1) CLOS – система ООП с множественным наследованием
(2) COM/DCOM – библиотека компонент
(3) Delphi – система визуального программирования
В какой из приведенных форм представления функций расположены корректно?
(1) ( (lambda (x) (car x)) (quote (1 2 3)))
(2) (два плюс три минус четыре)
(3) ((cons 'один 'два) 'три 'четыре)
(4) (((lambda (x) (car x))) '(один два три))
На каких данных расход памяти (число вызовов cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) пропорционален длине последнего из аргументов?
(1) (x) y (a b x y )
(2) x (x y z) (a b x y z)
(3) (x y) z (a b (a z b) )
(4) x (y z) ((a y z) b c d )
Какая из форм корректно выполнит отображающую функцию на всех наборах аргументов?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapc #'+ '(1 2 3) '(a b c))
(3) (mapcar #'cons '(1 2 3) '(4 5 6) '(7 8 9))
Какое выражение даст результат (A . B)?
(1) (cons 'a 'b)
(2) ((lambda (y x) (cons x y)) 'a 'b)
(3) ((lambda (x) (cons x 'A)) 'b )
Какая из форм имеет значение (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)))
Какое выражение не может быть исходным для кода программы на языке абстрактной машины (LD @n CDR CAR)?
(1) (CADR n )
(2) (EQ (ATOM n) ' CAR )
(3) (CAR (CDR n))
Какое из приведенных определений требуют понимания переменных как функций?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(4) (lambda (v) (funcall (cond (((E P)v)(E S1))(T(E S2)) ) v)
Присутствие какого из перечисленных атомов можно обнаружить с помощью заданной формы (apropos 'CAR ) в системе программирования для языка Clisp?
(1) CAAR
(2) CADR
(3) MAPCAN
(4) CHAR
(5) CARDINAL
Отметьте атомы, представляющие функции, входящие в базис языка Лисп?
(1) delete
(2) cons
(3) subst
(4) atom
(5) eq
Отметьте выражения, объявляющие новый экземпляр объекта.
(1) (defclass alltd () ((type :accessor td)) (:documentation "everyting"))
(2) (defclass expr (alltd) ((sd :accessor ft)) (:documentation "C-expression"))
(3) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(4) (setf e3 (make-instance 'expr))
(5) (texpr e3 'expr)
(6) (setf (slot-value e3 'sd) (read))
(7) (td e3)
В чем выражаются отличия структуры множеств от вариантов?
(1) могут быть разносортные элементы
(2) структура множества определяется всей совокупностью различимых элементов
(3) произвольное число составляющих
Вычисление какой подформулы может происходить не при каждом исполнении общей формулы?
(1) параметры обычных функций
(2) параметры специальных функций, например, операторы в форме prog
(3) самые левые предикаты в ветвлениях
Какая из спецификаций аргументов и результатов соответствует определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
(1) List(Some) -> List(Some)
(2) (Some List(Some)) -> Atom
(3) (Atom List(Atom)) -> List(Atom)
Выберите спецификацию, которой может соответствовать данный тест (a 1 b 2 3 4).
(1) List ({Atom, Number})
(2) List (Number )
(3) List ((Atom Number))
Какой механизм реализации Лисп-систем встречается в системах программирования на базе языка Java?
(1) встроенная база данных для свойств символов
(2) <сборка мусора> – автоматизация повторного использования памяти
(3) управление синтаксисом приема данных
Как можно изменить форму (cons (a три) (b четыре)), чтобы получить значение cons от заданных списков, а не диагностическое сообщение?
(1) перед каждым из аргументов вставить апостроф, блокирующий их вычисление, что дает (cons '(a 'три) '(b 'четыре))
(2) убрать лишние скобки в аргументах, что дает (cons a 'три b 'четыре)
(3) нужно поставить апосторофы таким образом (cons ('a 'три) ('b 'четыре))
Какое из заданных выражений вычислимо? (pairlis – наращивает список пар, соединяя в пары элементы первых двух аргументов)
(1) (pairlis (a b c) ( t d f) ((e . x)(g . y)))
(2) (pairlis '(a b c) '(t d f) '((r . y)(s. y)))
(3) (pairlis (cons a b) '(t d f) '((k . y)(l . y)))
В какой из форм отображающая функция не выполнится из-за несоответствия типов значений?
(1) (mapcar #'+ '(1 2 3) '(I O C) '(7 8 9))
(2) (maplist #'cons '(1 2 3) '(I O C) '(7 8 9))
(3) (mapcar #'list '(1 2 3) '(I O C) '(7 8 9))
Которое из выражений даст результат (Альфа Центавра)?
(1) (list ' Альфа ' Центавра)
(2) ((lambda (x y) (cons x y)) ' Альфа ' Центавра)
(3) ((lambda (x y) (list 'x 'y)) ' Альфа ' Центавра)
Какой список фактических параметров соответствуют списку формальных параметров вида (x y z &rest t)?
(1) (1 2 3 4 5)
(2) ((CONS 'a 'b ))
(3) (1 (2 3 4 5))
Какое выражение может быть исходным для объектного кода ( LD @n CDR CAR )?
(1) (CADR n )
(2) (EQ (CAR n) 'QUOTE )
(3) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))
Какое из определений не содержит безымянных функций?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (lambda (v) (funcall (lambda (x) (cons x x)) v)
Какая из форм даст неформальное описание заданной функции, если оно включено в комплект поставки системы программирования для языка Clisp?
(1) (documentation 'fn 'function)
(2) (apropos 'FN )
(3) (describe 'fn)
Какой из перечисленных механизмов языка Лисп унаследован новыми языками программирования, например Java и другие?
(1) механизм повторного использования памяти – "сборка мусора"
(2) предельно простой синтаксис
(3) самоопределение языка программирования
Какое из перечисленных выражений изменяет содержимое отдельных полей существующего объекта?
(1) (defclass expr () ((type :accessor td) (sd :accessor ft)) (:documentation "C-expression"))
(2) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(3) (setf e3 (make-instance 'expr))
(4) (texpr e3 'expr)
(5) (td e3)
Какие особенности множеств не характерны для вариантов?
(1) многоуровневая организация
(2) могут быть разносортные элементы
(3) произвольный порядок задания составляющих
Вычисление каких подформул не может происходить вообще?
(1) предикаты в ветвлениях
(2) параметры специальных функций
(3) непомеченные выражения, расположенные сразу вслед за RETURN в форме PROG
Какая из спецификаций аргументов наиболее точно соответствует определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))(caadr xl))))))
(1) (Atom List(Some)) )
(2) (Some List(Some))
(3) (Some List(Atom))
Отметьте спецификацию, которой не может соответствовать данный тест (a 1 b 2 3 4).
(1) List ({Atom, Number})
(2) List (Atom )
(3) List ((Atom Number))
Какой механизм реализации Лисп-систем встречается в системах программирования на базе языка Perl?
(1) понятие ассоциативной таблицы, реализованной как хэш-таблица
(2) управление синтаксисом приема данных
(3) открытый доступ из программы к основным компонентам системы
По какой причине не может быть вычислена форма ((cons 'один 'два) 'три) и как ее исправить?
(1) потерян головной элемент списка, возможно, надо (cons (cons 'один 'два) 'три)
(2) первый элемент формы должен быть атомом. Надо убрать лишние скобки, будет (cons 'один 'два 'три)
(3) функция cons не приспособлена к работе с числами. Надо атомы заключить в скобки: ((cons '(один) '(два)) 'три)
Какие из перечисленных текстов представляют перечень ветвей условного выражения?
(1) (((null x) al) ((QUOTE T) (CONS (CONS (CAR x) (CAR Y) ) (pairlis (CDR x) (CDR y) al) )))
(2) ((eq x (CAAR x)) (CAR al)) ((QUOTE T) (assoc x (CDR al)))
(3) (((null m)(cons(eval(car m)a)(evlis(cdr m)a)))
В какой из форм отображающая функция не выполнится из-за несоответствия числа аргументов?
(1) (mapcar #'CAR '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Которое из выражений не даст результат (Альфа Центавра) ни при каком значении переменной?
(1) (cons x '(Центавра))
(2) ((lambda ( y) (cons x y)) ' Альфа)
(3) ((lambda (b) (list b x )) ' Альфа)
(4) ((lambda (b) (cons x b)) '(Центавра))
Какой список фактических параметров не соответствует списку формальных параметров вида (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))
Какой код может быть результатом компиляции выражения (CADR n )?
(1) ( LD @n CDR CAR )
(2) ( LD @n CAR LDC QUOTE EQ )
(3) ( LD @n LDc 0 EQ SEL (LD @l CAR JOIN ) (LD @n SUB1 LD @l CDR CONS JOIN ))
Какое из приведенных определений не зависит от функциональных переменных или безымянных функций?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
Какая из форм позволяет увидеть список всех атомов, имена которых содержат CAR в системе программирования для языка Clisp?
(1) (apropos 'CAR )
(2) (symbol-plist ' CAR)
(3) (documentation ' CAR 'function)
(4) (describe 'car)
Какие структуры данных обрабатываются программами, написанными на языке Лисп?
(1) списки и атомы
(2) S-выражения
(3) вектора
(4) таблицы
Что из перечисленного можно рассматривать как объекты одного класса?
(1) стул
(2) стол
(3) стан
В какой из ловушек не вполне корректно размечены тупики?
(1) (progn (catch 'esc forms (cond ((null xl) (throw 'esc Nil))) forms2 ))
(2) (progn (catch 'esc forms1 (cond ((null xl)Nil) ((cond ((null xl) (throw 'esc Nil))))) forms2 ))
(3) (progn (catch 'OK (catch 'esc forms (cond ((CAR xl)(throw 'OK xl)) ((null xl) (throw 'esc Nil))) form )))
Какие из перечисленных форм содержат подвыражения, которые можно не вычислять?
(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))
Какие из функций соответствуют спецификации аргументов и результатов: (X List(X) ) -> List(X):
(1) cons
(2) eq
(3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
Отметьте тесты, соответствующие спецификации List (Atom) => List (Number).
(1) (1 2 3) => (1 2 3)
(2) (A B C D) => (1 2 3)
(3) () => ()
(4) (1( 2) 3) => (1 2 3)
(5) (1 2 3) => (A B)
(6) A => B
(7) (1 2 3) => ((1) () 2 3)
(8) (() 1 () 2 () 3) => (1 2 3)
Какие стили программирования сложились под влиянием функционального программирования?
(1) логическое программирование
(2) ООП
(3) императивно-процедурное программирование
(4) высокопроизводительное программирование
Какие из приведенных данных представляют собой S-выражение?
(1) (car (quote (list 'one 'two 'ten)))
(2) ((a . atom) (b . binary) (c . char))
(3) atom
(4) ( ( cons (a b) NIL )
На каких данных функция member (поиск элемента в списке) выполнит ровно три обращения к себе?
(1) a (c d e a f)
(2) d (a b c d e f)
(3) f (a b c d e)
Какие из перечисленных форм обработают аргументы по общей схеме?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Какие из перечисленных 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)
Отметьте функционально эквивалентные определения
(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)))) ))
Какие из перечисленных команд SECD не меняют размер стека результатов?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a . s) e (ADD1 . c) d -> (a+1 . s) e c d
(3) (a . s) e (SUB1 . c) d -> (a-1 . s) e c d
(4) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(5) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(6) (a b . s) e (EQ . c) d -> (t . s) e c d , где t - логическое значение
В каких определениях имеются свободные переменные?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (lambda (v) (assoc-i X N v))
(3) (lambda (v)(replace N v X (E A)))
(4) (lambda (v) (cons 'ATOM (eq 'COND v)))
(5) (defun YDOT (X Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y)))))
Какие из перечисленных функций, составляющих структуры данных, имеют деструктивные аналоги, позволяющие повышать эффективность функциональных программ на языке Clisp?
(1) append
(2) reverse
(3) union
(4) list
(5) pairlis
(6) sort
Отметьте выражения, объявляющие новый класс, экземпляр объекта, метод.
(1) (defclass alltd () ((type :accessor td)) (:documentation "everyting"))
(2) (defclass expr (alltd) ((sd :accessor ft)) (:documentation "C-expression"))
(3) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(4) (setf e3 (make-instance 'expr))
(5) (texpr e3 'expr)
(6) (setf (slot-value e3 'sd) (read))
(7) (td e3)
Отметьте, в чем варианты и множества схожи:
(1) неограниченное число составляющих
(2) произвольный порядок задания составляющих
(3) составляющие могут быть любой природы
(4) взможна многоуровневая организация множеств - иерархия
Вычисление каких конструкций может происходить не при каждом исполнении формулы?
(1) параметры обычных функций
(2) параметры специальных функций
(3) ветви условного выражения
(4) предикаты в ветвлениях
Какие из спецификаций аргументов и результатов соответствуют определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
(1) (Atom List(Some) ) -> List(Some)
(2) ( Some List(Some)) -> List(Atom)
(3) ( Atom List(Atom)) -> List(Some)
Отметьте спецификации, которым соответствует функция: (defun Assoc (x al) (cond (al(cond ((eq (x (caar al))) (car al))))
(1) (Atom List((Atom . Some))) => Some
(2) (Atom List( Some)) => Some
(3) (Atom List((Atom . Some))) => List
Какие механизмы реализации Лисп-систем встречаются в современных системах программирования на базе языка Java?
(1) встроенная база данных для свойств символов
(2) сборка мусора – автоматизация повторного использования памяти
(3) неполная компиляция программ
(4) управление синтаксисом приема данных
Как следует изменить форму (cons (a 'a3) (b 'b4)), чтобы получить ее значение?
(1) перед каждым из аргументов функции cons вставить апостроф, блокирующий их вычисление
(2) в начало каждого из аргументов следует вставить бинарную функцию, чтобы их значения могли быть вычислены, если a и b определены. Например (cons (eq a 'a3) (cons b 'b4)) может быть вычислена
(3) убрать внутренние скобки, что даст (cons a 'a3 b 'b4)
(4) символы a и b надо заменить на имена унарных функций
В каких случаях правильно указано число обращений к CONS, которое произойдет при выполнении функции append (сцепление списков) на указанных аргументах?
(1) append 2 (a b) (c d)
(2) append 3 (z x y) (w v)
(3) append 1 (a d c)(a)
(4) append 4 (a b) (a c d e)
Какие из форм не искажают исходные данные?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapcan #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте правильное создание именованной константы
(1) (set actor 'function)
(2) (defconstant pi 3.14151926)
(3) (defparameter x 'bee)
(4) (defun a-funct 'options)
Какие из форм взаимозаменяемы по формальному значению?
(1) (cons y (cdr x))
(2) (rplaca x y)
(3) (cons x (cdr y))
(4) (rplacd x y)
Какие из перечисленных команд понадобятся при компиляции заданного выражения: (CADR n )?
(1) s e (LD n . c) d -> (x . s) e c d , где x - это значение (N-th n e )
(2) s e (JOIN ) (c . d) -> s e c d
(3) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(4) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(5) s e (LDF f . c) d -> ((f . e) . s) e c d
Какие из определений содержат функциональные переменные?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (X Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y)))))
(3) (defun отобр (список ФН)(COND ((NULL список)NIL)(T(CONS(ФН список)(MAP(CDR список)FN)))))
Отметьте форму, открывающую файл так, что в нем сохраняется вся попадавшая в него информация
(1) (open "dump" :direction :output :if-exists :append :if-does-not-exist :create )
(2) (open "context" :direction :output :if-exists :rename)
(3) (open "remark" :direction :output :if-exists :overwrite :if-does-not-exist :error)
Отметьте название языка программирования, в котором впервые поддержаны идеи функционального программирования
(1) Lisp
(2) Prolog
(3) Python
Что из перечисленного удобно рассматривать как объект того же класса, что и <тетрадь>?
(1) кнопка
(2) скрепка
(3) карандаш
(4) степлер
(5) блокнот
(6) записная книжка
Какое из определений при попадании в тупик позволяет передать значение, зависящее от внутреннего контекста?
(1) (defun escape (x) (throw 'esc Nil))
(2) (defun escape (x ) (throw 'esc (cons 'ESCAPE x)))
(3) (defun escape (x) (throw 'esc 'ESCAPE))
Какая из перечисленных форм содержит подвыражения, которые можно не вычислять, т.к. на результат их значения не влияют?
(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)) ))
Аргументы и результаты какой из функций можно специфицировать формулой: (X List(X)) -> List(X)?
(1) (lambda (x y) (cons y x))
(2) (lambda (x xl) (cond (xl (cond ((eq x (car xl))x)))))
(3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
Какой из тестов соответствует спецификации List (Atom) => List (Number).
(1) (A B C D) => (1 2 3)
(2) A => B
(3) (1 2 3) => ((1) () 2 3)
Какой из указанных стилей программирования отражает влияние идей функционального программирования?
(1) ООП
(2) операторное программирование
(3) системное программирование
Какое из приведенных данных представляет собой сложное S-выражение?
(1) ((one . один) (two. два) (three . три))
(2) list
(3) ( ( cons (a b) NIL )
На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно два витка (обращения к самой себе)?
(1) a (c d e a f)
(2) с (a b c d e f)
(3) f (a b c d e)
Какая из перечисленных форм построит значение ((2 3)(3) Nil)?
(1) (mapl #'cdr '(1 2 3))
(2) (mapcar #'cdr '(1 2 3))
(3) (maplist #'cdr '(1 2 3))
Какое из перечисленных 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)
Какое из определений функций дает в результате список из единиц?
(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)))) ))
Какая из перечисленных команд SECD сохраняет размер стека результатов?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a . s) e (SUB1 . c) d -> (a-1 . s) e c d
(3) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(4) (a b . s) e (EQ . c) d -> (t . s) e c d , где t - логическое значение.
В какое определение входят свободные переменные?
(1) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(2) (lambda (v) (assoc X N v))
(3) (lambda (v) (cons 'ATOM (eq 'COND v)))
Какая из перечисленных функций, строящих структуры данных, может быть замена на имеющийся в языке Clisp деструктивный аналог, позволяющий повысить эффективность функциональной программы?
(1) reverse
(2) pairlis
(3) list
(4) sort
Какой метод решения задач особенно характерен для функционального программирования?
(1) преобразование состояний памяти
(2) обработка сигналов
(3) символьная обработка информации
Что из перечисленного не стоит рассматривать как объект класса <мебель>?
(1) стол
(2) кресло
(3) шкаф
(4) телевизор
Отметьте формы, эквивалентные логическому отрицанию - "не a".
(1) (cond ((eq a Nil) Nil) (T T))
(2) (cond (a Nil) (Nil T) )
(3) (eq a Nil)
(4) (null a)
В какой из перечисленных форм вычисление всех подвыражений необходимо?
(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))))
Какая из функций не соответствует спецификации результатов (X List(X)) -> List(X)?
(1) (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
(2) (lambda (x y) (cons x y))
(3) (lambda (x y) (eq x y))
Отметьте тест, соответствующий спецификации List (Atom) => List ({Number, Atom}).
(1) (A B C D) => (1 2 3)
(2) A => B
(3) ((A) 1 () 2 () 3) => (1 2 3)
Какой из перечисленных языков программирования сложился как высокопроизводительная система функционального программирования?
(1) Apl
(2) Sisal
(3) Setl
Какое из приведенных данных представляет собой список?
(1) (car (quote (Маша Миша Майкл)))
(2) ((a . один) (b . два) (c . три) . пять)
(3) ( ( cons (a b) NIL )
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает более двух обращений к самой себе?
(1) () a c
(2) (b a c d) a b
(3) (a b d) e c
Какая из форм не искажает исходные данные?
(1) (mapcan #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcon #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
Какое из 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)
Какая из форм поможет избавиться от совпадений чисел в аргументах (использовать определение объединения из лекции)?
(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))
Какая из перечисленных команд SECD укорачивает стек результатов (S)?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(3) (a . s) e (ATOM . c) d -> (t . s) e c d
(4) (a b . s) e (EQ . c) d -> (t . s) e c d , где t - логическое значение.
В какое из определений не входят свободные переменные?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(3) (lambda (v) (assoc X N v))
Для какой из перечисленных функций, строящих структуры данных, деструктивные аналоги не имеют смысла?
(1) remove
(2) reverse
(3) union
(4) pairlis
Отметьте имя автора языка программирования, поддерживающего фукнциональный подход к решению сложных задач?
(1) Джекоб Шварц
(2) Джон Мак-Карти
(3) Джон Бэкус
Что из перечисленного можно рассматривать как полезный атрибут, являющийся эффективной реализацией метода работы с объектами класса "прямые"?
(1) цвет линии
(2) толщина линии при рисовании
(3) координаты точек пересечения с границами экрана
Какая из ловушек позволяет поймать внутреннее прерывание?
(1) (progn (catch 'esc : (cond ((null xl)Nil) ((cond ((null xl) (throw 'esc Nil))))):))
(2) (progn (catch 'escape (cond ((null xl) (throw 'esc Nil)))))
(3) (progn (catch 'OK (catch 'esc : (cond ((CAR xl)(throw 'OK xl)) ((null xl) (throw 'esc Nil))):)))
Какая из форм содержит константные выражения, которые можно заменить их значениями?
(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))))
Аргументы какой из функций должны соответствовать спецификации: List(X) -> List(X) ?
(1) (lambda (x ) (append x '(1 2 3)))
(2) (lambda (xl) (cond (xl (cond ((eq 'A xl)T)))))
(3) (lambda (x y) (cons x y))
Выберите тест, соответствующий спецификации List (List(Atom)) => List (Atom).
(1) ( (a) () (1 2 3 4) ) => (A B C D)
(2) (A B C D) => (1 2 3)
(3) ((1) (2 2) (3 3 3)) => ТРИ
Какой из стилей программирования сложился и был реализован на базе Лиспа?
(1) визуальное программирование
(2) декларативное программирование
(3) интерфейсное программирование
Какой из приведенных текстов не изображает ни список, ни сложное S-выражение?
(1) ( cons (a b) NIL )
(2) атом
(3) (eq a b)
(4) (три, четыре, пять)
На каком наборе данных функция append (соединение двух списков в один) даст результат сразу, без рекурсивных обращений к себе?
(1) (a b) (c d)
(2) Nil ((a b) c d)
(3) (a (b c) d) ()
Какая из форм опасна для сохранения исходных данных?
(1) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcon #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Какое из 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)))
Какая форма последовательно последовательно вычислит выражения 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)
Какая из перечисленных команд SECD изменяет состояние дампа (D)?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(3) (t . s) e (SEL c1 c0 . c) d -> s e ct (c . d )
Компиляция какого из приведенных определений требует информации о типе свободной переменной?
(1) (LAMBDA (A) (PROG (B С) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(3) (lambda (v) (assoc X N v))
Какая из перечисленных функций языка Clisp, деструктурирущих данные, может быть заменена на функциональный эквивалент, гарантирующих сохранение исходных данных?
(1) Subst
(2) nsubst
(3) list
(4) Pairlis
(5) sort
Когда были сформулированы математические основы функционального программирования?
(1) первая половина 20 века
(2) эпоха первых компьютеров
(3) период увлечения языками сверхвысокого уровня
(4) период первых исследований искусственного интеллекта
Что из перечисленного имеет смысл вычислять по методу с именем <мера>?
(1) вес конструируемого прибора
(2) широта души
(3) охват проблемы
(4) уровень потребностей
Отметьте функции доступа к элементам последовательностей
(1) union
(2) elt
(3) find
(4) position
(5) sort
Какая из форм не содержит подвыражений, допускающих замену на их значения?
(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))
Спецификации результатов какой из функций соответствует формуле: (X List(X)) -> List(X) ?
(1) (lambda (x y) (eq y x))
(2) (lambda (x y) (delete x y))
(3) (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
Выберите тест, которому удовлетворяет функция Subst.
(1) (A S ((B) (S) S)) => ((B) (A) A)
(2) (A S (L (A) M)) => (L (S) M)
(3) (A A (S (A) B)) => (S ((A)) B)
Отметьте версию Лиспа, обладающую особо высокой эффективностью
(1) Clisp
(2) Scheme
(3) CMUCL
Какое из приведенных S-выражений может изображать функцию в Лисп-программе?
(1) car
(2) (lambda x (car x))
(3) (defun fn (x ) (cons x x))
Отметьте вариант, в котором правильно указано число обращений к себе функции equal, сравнивающей две структуры для выяснения, совпадают ли они?
(1) 1 (a) (a)
(2) 2 ((a b) c) ((a b) d)
(3) 4 (a b c) (a b c d)
При вычислении какой из форм формальный результат не совпадает с построенной структурой?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapl #'list '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте правильное введение локальной переменной 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) )))
Какое из выражений формально имеет то же значение, что и (rplaca x y)?
(1) (cons y (cdr x))
(2) (cons x (cdr y))
(3) (rplacd x y)
Какая из перечисленных команд нужна при компиляции выражения (CADR n)?
(1) s e (JOIN ) (c . d) -> s e c d
(2) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(3) s e (LDF f . c) d -> ((f . e) . s) e c d
Какое из определений не содержит функциональных переменных?
(1) (LAMBDA (A Fn) (PROG (B) S (SETQ B A) (SETQ C (CONS (Fn A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
Отметьте форму, открывающую файл так, что в нем можно сохранить результаты только текущего сеанса, без более ранней информации.
(1) (open "output" :direction :output :if-exists :rename :if-does-not-exist :create)
(2) (open file-in :direction :input )
(3) (open "history" :direction :output :if-exists :append)
Какой из перечисленных механизмов реализации языка Лисп способствовал применению функционального программирования неспециалистами?
(1) полнота средств управления вычислениями
(2) простота и гибкость отладки
(3) отсутствие "синтаксического сахара" в представлении программ
Какую из перечисленных функций не стоит включать в одно семейство с остальными функциями?
(1) длина отрезка
(2) координаты точки
(3) объем цилиндра
(4) вес гирьки
Отметьте, в чем сходство вариантов и множеств.
(1) произвольный порядок задания составляющих
(2) строятся из однотипных объектов
(3) возможна многоуровневая организация - иерархия
В какой из перечисленных форм можно вычислять не все подвыражения независимо от значений переменных?
(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))))
Спецификация результатов какой из функций не соответствует (X List(X)) -> List(X) ?
(1) (lambda (x y) (eq y x)).
(2) (lambda (x y) (cdr (list x x x )))
(3) (lambda (x y) (cons x Nil ))
Выберите тест, на котором функцию Subst нет смысла выполнять, т.к. не получается нового значения.
(1) (A S ((B) (S) S)) => ((B) (A) A)
(2) (A S (L (A S) M)) => (L (A A) M)
(3) (A A (S (A) B)) => (S (A) B)
Какая из упомянутых систем разработана на базе Лиспа:
(1) AutoCAD – система машинной графики для задач инженерного проектирования
(2) EDP – графический редактор учебного назначения
(3) bCAD - система инженерной графики
Какое из приведенных S-выражений не может играть роль представления функций в Лисп-программе?
(1) (один два три)
(2) Cons
(3) (lambda (x) (car x))
На каких данных расход памяти (число cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) равен длине последнего из аргументов?
(1) (x) y (a b (y d) x c)
(2) x (y z) (a b x y z)
(3) (x y) z (a b a z b z)
(4) x (y z) ((a y z) b c d )
Какое из выражений корректно вычислит отображающую функцию на всех наборах аргументов?
(1) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapc #'+ '(1 2 3) '(a b c))
(3) (mapcar #'cons '(1 2 3) '(4 5 6) '(7 8 9))
При вычислении какой формы получится результат (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 . 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)))
Для какого выражения не может быть результатом компиляции на язык абстрактной машины кода программы вида (LD @n CDR CAR)?
(1) (CADR n )
(2) (CONS (QUOTE CAR) (QUOTE CDR))
(3) (CAR (CDR n))
В каком из приведенных определений переменные понимаются как функции?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (lambda (v) (funcall (cond (((E P)v)(E S1))(T(E S2)) ) v)
(4) (lambda (w) ((lambda (v)(cond ( (w 'E v) 'S)(T v))))
Присутствие какого из перечисленных атомов можно обнаружить с помощью заданной формы (apropos 'CDR ) в системе программирования для языка Clisp?
(1) CDR
(2) CADR
(3) MAPCAR
(4) CHAR
(5) CARDINAL
Какие из перечисленных атомов представляют функции, входящие в базис языка Лисп?
(1) cdr
(2) car
(3) atom
(4) list
(5) member
Отметьте выражение, объявляющее новый класс.
(1) (defun fd (x) (cons x x))
(2) (defclass expr (alltd) ((sd :accessor ft)) (:documentation "C-expression"))
(3) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(4) (setf e3 (make-instance 'expr))
(5) (texpr e3 'expr)
(6) (setf (slot-value e3 'sd) (read))
(7) (td e3)
В чем выражаются отличия структуры вариантов от множеств?
(1) могут быть разносортные элементы
(2) произвольное число составляющих
(3) структура "вариант"определена, если хотя бы одно значение элемента удалось вычислить
Вычисление какой подформулы не гарантировано при исполнении общей формулы?
(1) параметры обычных функций
(2) произвольное число аргументов функции LIST
(3) предикаты в ветвлениях
Какая из спецификаций аргументов и результатов соответствует определению функции: (lambda (xl) (cond (xl (cond ((eq x (car xl))xl)))))
(1) List(Atom) -> Atom
(2) List(Some) -> List(Some)
(3) Atom -> List(Some)
Отметьте спецификацию, которой может соответствовать тест ((A 1)( B 2)( 3 С)).
(1) List(List(Atom))
(2) List ({Atom, Number})
(3) List (Atom List ( Number))
Какой механизм реализации Лисп-систем встречаются в таких системах программирования, как Delphi?
(1) встроенная база данных для свойств символов
(2) <сборка мусора> – автоматизация повторного использования памяти
(3) управление синтаксисом приема данных
Как можно воздействовать на форму (cons (a 'два) (b 'семь)), чтобы интерпретатор обязательно выдал ее значение, а не диагностическое сообщение?
(1) в начало каждого из аргументов следует вставить бинарную функцию, например, (eq a 'два), (cons b 'семь) в результате получится (cons (eq a 'два) (cons b 'семь))
(2) заменить a и b на атом car, что дает (cons (car 'два) (car 'семь))
(3) символы a и b можно заменить на имена унарных функций над атомами, например atom или quote, что дает (cons (atom 'два) (quote 'семь))
Какое из заданных выражений имеет определенный результат? (pairlis – наращивает список пар, соединяя в пары элементы первых двух аргументов)
(1) (pairlis (cons a b) ( t d f) ((ten . x)(two . y)))
(2) (pairlis (cons a b) '(t d f) '((k . y)(p . y)))
(3) (pairlis () () '((k . y) (p . y)) )
В какой из форм несоответствия типов значений помешает выполнению отображающей функции?
(1) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapc #'+ '(1 2 3) '(4 5 6) (+ 7 8 9))
(3) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Которое из выражений построит список (Альфа Центавра)?
(1) ((lambda (x y) (list x y)) ' Альфа ' Центавра)
(2) ((lambda (x y) (cons x y)) ' Альфа ' Центавра)
(3) ((lambda (x y) (list y x )) ' Альфа ' Центавра)
Какой из списков аргументов соответствует списку формальных параметров вида (x y z &rest t)?
(1) ((CONS 'a 'b ))
(2) ((a)(b) (c))
(3) (1 (2 3 4 5))
Какое выражение эквивалентно объектному коду ( LD @n CDR CAR )?
(1) (CAR (CDR n))
(2) (EQ (CAR n) 'QUOTE )
(3) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))
В какое из определений не входят безымянные функции?
(1) (defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(2) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(3) (lambda (v) (funcall (lambda (x) (cons x x)) v)
Какая из форм позволит увидеть формальное определение заданной функции в данный момент в системе программирования для языка Clisp?
(1) (describe 'fn)
(2) (apropos 'FN )
(3) (documentation 'fn 'function)
(4) (symbol-plist 'fn)
Какой из перечисленных механизмов языка Лисп унаследован новыми языками программирования, например Perl и другие?
(1) ассоциативные таблицы
(2) предельно простой синтаксис
(3) самоопределение языка программирования
Какое из перечисленных выражений дает новое значение полю существующего объекта?
(1) (defclass expr () ((type :accessor td) (sd :accessor ft)) (:documentation "C-expression"))
(2) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(3) (setf e3 (make-instance 'expr))
(4) (setf (slot-value e3 'sd) (read))
(5) (td e3)
Какая из задач легче решается в терминах вариантов, чем множеств?
(1) поиск первого элемента с заданным свойством в структуре данных
(2) перебор всех элементов структуры данных
(3) проверка эквивалентности структур данных
Вычисление каких подформул вообще невозможно, точнее, бессмысленно?
(1) параметры внешних функций
(2) выражения, зависящие от свободных переменных, значения которых не определены
(3) предикаты в ветвлениях
Какая из спецификаций аргументов соответствует определению функции: (lambda (x xl) (cond (xl (cond ((equal x (car xl)) (eq (cadr xl) x))))))
(1) (Atom List(Some) )
(2) (Some List(Some))
(3) (Some Atom)
Выберите спецификацию, которой заведомо не соответствует тест ((a 1)( b 2)( 3 4)).
(1) List(List(Atom))
(2) List ({Atom, Number})
(3) List ( List(Atom Number))
Какой из перечисленных механизмов реализации Лисп-систем встречается в системах программирования на базе языка Perl?
(1) встроенная база данных для свойств символов
(2) управление синтаксисом приема данных
(3) открытый доступ из программы к основным компонентам системы
Что можно подправить, чтобы форма (cons 'один 'два 'три) имела значение?
(1) оставить в списке только два аргумента
(2) заменить атомы списками
(3) поставить апострофы перед атомами
Какие из данных текстов изображают перечень ветвей условного выражения?
(1) ((eq x (CAAR x)) (CAR al)) ((QUOTE T) (assoc x (CDR al)))
(2) (((eval(caar c)a)(eval(cadar c)a))(T(evcon(cdr c)a)))
(3) (((null m)(cons(eval(car m)a)(evlis(cdr m)a)))
В каком выражении отображающая функция не выполнится из-за несоответствия числа аргументов?
(1) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (maplist #'CONS '(7 8 9))
(3) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Которое из выражений не может дать результат (Альфа Центавра) независимо от значения переменной?
(1) (cons '(Центавра) x)
(2) ((lambda ( y) (cons y x)) ' Альфа)
(3) ((lambda (b) (list b x)) ' Альфа)
(4) ((lambda (b) (list x b)) '(Центавра))
Какой из списков фактических параметров не соответствует списку формальных параметров вида (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))
Какая команда машины SECD заведомо не понадобятся при компиляции выражения (CADR n)?
(1) s e (LD n . c) d -> (x . s) e c d , где x - это значение (N-th n e )
(2) s e (JOIN ) (c . d) -> s e c d
(3) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(4) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
Какое из приведенных определений не зависит от функциональных аргументов или безымянных функций?
(1) (defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(2) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(3) (defun fn (v) (cond ((EQ P v)(print S1)) (T(EQ v S2)) ) v)
Какая из форм позволяет увидеть список атомов заданного пакета, имена которых содержат CAR, в системе программирования для языка Clisp?
(1) (apropos 'CAR 'package)
(2) (symbol-plist 'car)
(3) (documentation 'car 'package)
(4) (describe 'car)
Отметьте структуры данных, удобные для функционального программирования?
(1) битовые строки
(2) матрицы
(3) списки
(4) числа
Отметьте объект, который не стоит рассматривать как объект общего класса с остальными?
(1) пиджак
(2) жилет
(3) юбка
(4) туфли
(5) брюки
Какое из определений при попадании в тупик позволяет передать значение, зависящее от внутреннего контекста?
(1) (defun escape (x) (throw 'esc Nil))
(2) (defun escape (x ) (throw 'esc (cons 'ESCAPE x)))
(3) (defun escape (x) (throw 'esc (print (list 'ESCAPE x))))
(4) (defun escape (x) (throw 'esc 'ESCAPE))
В каких из перечисленных форм все подвыражения необходимо вычислить?
(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)
Какие из функций не соответствуют спецификации аргументов и результатов: ( X List(X)) -> List(X):
(1) (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
(2) cons
(3) eq
Отметьте тесты, соответствующие спецификации List (Atom) => List ({Number, Atom}).
(1) (1 2 3) => (1 ОДИН 2 ДВА 3 ТРИ)
(2) (A B C D) => (1 2 3)
(3) () => ()
(4) (1( 2) 3) => (1 2 3)
(5) (1 2 3) => (A B)
(6) A => B
(7) (1 2 3) => ((1) () 2 3)
(8) (() 1 () 2 () 3) => (1 2 3)
Примеры систем, разработанных на базе Лисп.
(1) AutoCAD – система машинной графики для задач инженерного проектирования
(2) Emacs – текстовый редактор в ОС UNIX
(3) CLOS – система ООП
(4) Elisa – программа-собеседник
(5) bCAD
Какие из приведенных данных представляют собой список?
(1) (car (quote (a b c d)))
(2) ((a . atom) (b . binary) (c . char) . d)
(3) ( ( cons (a b) NIL )
(4) ( ( cons (a b) NIL ))
На каком данном функция insert (в список перед вторым аргументом вставляет третий) сделает более двух витков?
(1) (a b c d) d a
(2) (b a c d) b a
(3) (a b d) c a
Какая из перечисленных форм обработает аргументы не по общей схеме?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapc #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте какие из перечисленных 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)
Какая из форм не равнозначна остальным?
(1) (union Nil '(1 2 3 1 2 3))
(2) (union '(1 2 3) '(1 2 3))
(3) (union '(1 2 3 ) NIL )
Какие из перечисленных команд SECD уменьшают размер стека результатов?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a . s) e (ADD1 . c) d -> (a+1 . s) e c d
(3) (a . s) e (SUB1 . c) d -> (a-1 . s) e c d
(4) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(5) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(6) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(7) (a . s) e (ATOM . c) d -> (t . s) e c d
(8) (a b . s) e (EQ . c) d -> (t . s) e c d , где t - логическое значение
Какие из определений не содержат свободных переменных?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (X Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y)))))
(3) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))
(4) (lambda (v) (assoc-i X N v))
Какие из перечисленных функций, составляющих структуры данных, не имеют деструктивных аналогов в языке Clisp?
(1) remove
(2) reverse
(3) union
(4) list
(5) pairlis
(6) sort
Какие из перечисленных выражений изменяют содержимое отдельных полей существующего объекта?
(1) (defclass expr () ((type :accessor td) (sd :accessor ft)) (:documentation "C-expression"))
(2) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(3) (setf e3 (make-instance 'expr))
(4) (texpr e3 'expr)
(5) (setf (slot-value e3 'sd) (read))
(6) (td e3)
Чем выражаются отличия множеств от вариантов?
(1) могут быть разносортные элементы
(2) множество определяется всей совокупностью различимых элементов
(3) возможна многоуровневая организация - иерархия
(4) варианты существуют, если одно значение варианта удалось вычислить
Вычисление каких конструкций не может происходить вообще?
(1) параметры специальных функций
(2) ветви условного выражения
(3) непомеченные выражения, расположенные сразу вслед за RETURN, GOTO, THROW и т.п.
Какие из спецификаций аргументов соответствуют определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
(1) (Atom List(Some) )
(2) ( Some List(Some))
(3) (Some List(Atom))
Отметьте спецификации, которым соответствует функция Subst.
(1) (Atom Some S (Atom)) => S (Some)
(2) (Atom Some List (Atom)) => List (Some)
(3) (Atom Atom S (Atom)) => S (Atom)
Какие механизмы реализации Лисп-систем встречаются в современных системах программирования, таких как Delphi?
(1) встроенная база данных для свойств символов
(2) использование макро-техники для генерации типовых компонентов программы
(3) сборка мусора – автоматизация повторного использования памяти
(4) управление синтаксисом приема данных
Почему форма ((cons 'a1 'b2) 'c3) не может быть вычислена?
(1) первый элемент списка имеет значение, но оно не представляет собой функцию
(2) потерян головной элемент списка, возможно, было (cons (cons 'a1 'b2) 'c3)
(3) первый элемент формы должен быть атомом
(4) функция cons не приспособлена к работе с атомами
В каких случаях число обращений к функции equal при выяснении, не совпадают ли заданные S-выражения, приведено верно?
(1) 1 (a b c) ( b c a)
(2) 1 (a) (a)
(3) 2 ((a b) c) ((a b) d)
(4) 4 (a b c) (a b c d)
Какие из форм могут разрушить исходные данные?
(1) (mapcan #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapcon #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте правильное введение связной переменной 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 АБВГДЕ)))
Какая из форм отлична от остальных по результату?
(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)))
Какое выражение не может быть исходным для заданного кода абстрактной машины ( LD @n CDR CAR ) ?
(1) (CADR n )
(2) (EQ (CAR n) 'QUOTE )
(3) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))
Какие из определений не содержат функциональных переменных?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (X Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y)))))
(3) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))
Отметьте формы, открывающие файл так, что в нем можно сохранить результаты только текущего сеанса, без лишней информации.
(1) (open "output" :direction :output :if-exists :rename :if-does-not-exist :create)
(2) (open file-in :direction :io )
(3) (open "history" :direction :output :if-exists :append)
Применение какого языка программирования впервые показало возможности функционального программирования при решении новых сложных задач?
(1) Lisp
(2) Logo
(3) ML
Что из перечисленного удобно рассматривать как объект того же класса, что и <куртка>?
(1) брюки
(2) жилет
(3) носки
(4) шуба
(5) пальто
Какое из определений при попадании в тупик позволяет получить значение, зависящее от внутреннего контекста?
(1) (defun escape (x) (throw 'esc Nil))
(2) (defun escape (x) (throw 'esc (print (list 'ESCAPE x))))
(3) (defun escape (x) (throw 'esc 'ESCAPE))
Какая из перечисленных форм содержит подвыражения, которые можно не вычислять, т.к. результат от их значения не зависит?
(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)) ))
Спецификации аргументов и результатов какой из функций может иметь вид: (X List(X)) -> List(X)?
(1) (lambda (x y) (append y x))
(2) (lambda (x y z) (subst x y z))
(3) (lambda (x xl) (cond (xl (cond ((atom x) (cons x xl)) (T xl)) ))
Выберите тест, соответствующий спецификации List (Atom) => List (Number).
(1) (1 2 3 4) => ()
(2) (A B C ) => B
(3) ((A) 1 () 2 () 3) => (1 2 3)
Какой из упомянутых стилей программирования сложился как развитие функционального программирования?
(1) низкоуровневое программирование
(2) <ленивое> программирование
(3) императивно-процедурное программирование
(4) параллельное программирование
Какое из приведенных данных представляет собой самое простое составное S-выражение?
(1) ((one . один) (two. два) (three . три))
(2) (A . B)
(3) ( cons (a b) NIL )
На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно одно обращение к самой себе?
(1) a (a c d e a f)
(2) d (a b c d e f)
(3) f (a )
Какие из перечисленных форм выработает результат (1 4 7 2 5 8 3 6 9)?
(1) (mapcan #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Какое из перечисленных 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)
Выберите определение функции, чтобы получить список из единиц такой же длины как аргумент:
(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)))) ))
Какая из перечисленных команд SECD не влияет на размер стека результатов?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(3) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(4) (a b . s) e (EQ . c) d -> (t . s) e c d , где t - логическое значение.
В каком определении функция зависит от свободных переменных?
(1) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(2) (lambda (v)(list N v X (E A)))
(3) (lambda (v) (cons 'ATOM (eq 'COND v)))
Замена какой из перечисленных функций на имеющийся в языке Clisp деструктивный аналог повышает эффективность программ без потери функциональной эквивалентности?
(1) union
(2) pairlis
(3) sort
(4) list
Какая особенность функционального подхода дает путь к достижению надежности программ?
(1) высокий уровень языковых средств
(2) разнообразие встроенных функций и библиотек
(3) доказательность основных построений при разработке универсальных функций
Что из перечисленного не стоит рассматривать как объект класса <канцелярские товары>?
(1) тетрадь
(2) фломастер
(3) книга
(4) ежедневник
Отметьте формы, эквивалентные дизъюнкции - "a или b".
(1) (eq a b)
(2) (cond (a(eq a b)) (T Nil))
(3) (cond (b T) (T a))
(4) (if b T a)
(5) (cond (a T) (T b))
В какой из перечисленных форм вычисление всех подвыражений для получения результата обязательно?
(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)))
Какая из функций не соответствует спецификации ни аргументов, ни результатов: (X List(X)) -> List(X)?
(1) (lambda (x y) (list x y))
(2) (lambda (xl) (cond (xl (cond ((eq 'A (car xl))T)))))
(3) (lambda (x y) (cons x y))
Выберите тест, соответствующий спецификации List (Atom) => List ({Number, Atom}).
(1) (A) => ()
(2) (A ( 2) 3) => (1 2 3)
(3) (1 2 3) => ((1) (A) 2 3)
Какой из перечисленных языков программирования сложился система функционального программирования для исследовательских целей?
(1) Simula
(2) Pascal
(3) ML
Какое из приведенных данных не представляет собой список?
(1) ((a . один) (b . два) (c . три) . пять)
(2) (cons (cons a b) NIL )
(3) (cons (a b) NIL )
На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает менее трех обращений к самой себе?
(1) (a b c d) a c
(2) (b c d e a) a b
(3) (a b c d e) f c
Какое из выражений при вычислении не искажает исходные данные?
(1) (mapcon #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapcan #'+ '(1 2 3) '(4 5 6) '(7 8 9))
Какое из 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)
Какая из форм не убирает повторы в списках (использовать определение объединения из лекции)?
(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 )
Какая из перечисленных команд SECD увеличивают размер стека результатов (S)?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(3) (a . s) e (ATOM . c) d -> (t . s) e c d
Какое из определений функций не зависит от свободных переменных?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (lambda (v) (cons 'ATOM (eq 'COND v)))
(3) (lambda (v) (assoc-i X N v))
Какая из перечисленных функций, строящих структуры данных, не имеет в системе Clisp деструктивных аналогов?
(1) remove
(2) reverse
(3) union
(4) sort
Чьи идеи языковой поддержки задач искусственного интеллекта реализованы как язык программирования Lisp?
(1) Джон Бэкус
(2) Джон Мак-Карти
(3) Святослав Сергеевич Лавров
Что из перечисленного можно рассматривать как атрибут, помогающий управлять визуализацией объектов класса "круги"?
(1) коэффициенты уравнения для прорисовки линии
(2) цвет линии
(3) координаты точек выхода за границы экрана
Какая из ловушек приспособлена к реакции на внутреннее прерывание?
(1) (progn (catch 'esc : (cond (xl (throw 'esc (print xl)))) : ))
(2) (progn (catch 'esc : (cond ((null xl)Nil)) ((cond ((null xl) (throw 'esc Nil))))) :))
(3) (progn (catch 'escape (cond ((null xl)(throw 'esc Nil))) ))
Какая из форм содержит общие подвыражения, которые целесообразно вычислить предварительно, чтобы избежать повторного вычисления одних и тех же выражений?
(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))))
Спецификация аргументов какой из функций соотвествует формуле: List(X) -> List(X) ?
(1) (lambda (x y) (delete y x))
(2) (lambda (xl) (cond (xl (cond ((eq 'A (car xl))T)))))
(3) (lambda (x ) (union '(A B C) x))
Какой из тестов соответствует спецификации List (List(Atom)) => List (Atom).
(1) ((A)) => Nil
(2) (( 2) A 3) => (1 2 3)
(3) (A B C ) => (A B)
(4) ((A)(B)(C)) => ((1) 3)
Отметьте область программирования, где методы реализации Лиспа показали высокую надежность?
(1) компонентное программирование
(2) вычисления с неограниченной точностью
(3) машинно-ориентированное программирование
Какое из приведенных данных не представляет собой ни список, ни сложное S-выражение?
(1) ( ( cons (a b) NIL )
(2) (eq a (b . c))
(3) (один, два, четыре)
В каком случае правильно указано число обращений к CONS, которое произойдет при выполнении функции append (соединение двух списков в один) на заданных аргументах?
(1) 2 (a b) (c d)
(2) 5 (z x y) (w v)
(3) 1 (a d c)(a)
(4) 4 (a b) (a c d e)
Какие из форм при вычислении разрушает исходные данные?
(1) (mapcan #'- '(1 2 3) '(4 5 6) '(7 8 9))
(2) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapl #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
Какое из 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)))
Отметьте вариант, в котором последовательно будут вычислены выражения 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)
Какая из перечисленных команд SECD изменяет состояние дампа (D)?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) (x) e (RTN) (s e c . d) -> (x . s) e c d
(3) (a . s) e (ATOM . c) d -> (t . s) e c d
Какое из приведенных определений можно компилировать без информации о типе свободной переменной
(1) (LAMBDA (A) (PROG (B С) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (lambda (v) (assoc X N v))
Какая из перечисленных функций, деструктурирущих данные, функционально эквивалентна другой функции языка Clisp, не разрушаюшей исходные данные?
(1) union
(2) cons
(3) nunion
(4) list
(5) Pairlis
(6) sort
Решение какой задачи было воспринято как ответ на вопрос о реализуемости искусственного разума?
(1) автоматическая проверка доказательств теорем
(2) "Элиза" - программа-собеседник, имитирующая диалог с психоаналитиком
(3) программа игры в шахматы
(4) Auto-CAD - программный комплекс средств инженерной компьютерной графики для нужд проектирования: расчеты, чертежи и эскизы
Какую из перечисленных функций имеет смысл рассматривать как метод с именем <вес»>
(1) место в очереди
(2) объем цилиндра
(3) привокзальная площадь
(4) дистанция между поездами
Отметьте функции, реорганизующие последовательнолсти
(1) find
(2) reverse
(3) sort
(4) delete
(5) member
В какой из форм нет константных подвыражений?
(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))))
Результаты какой из функций соответствуют спецификации: (X List(X)) -> List(X) ?
(1) (lambda (x y) (cons x Nil ))
(2) (lambda (x y) (member y x))
(3) (lambda (x xl) (cond (xl (cond ((eq x (car xl) ))) x)
Укажите тест, на котором функция Pairlis (см. лекцию 3) исчерпает два первые аргумента.
(1) ((A B C) (S T U) ((A . U) (B . V)))
(2) ((A B ) (S T U) ((A . U) (B . V)))
(3) ((A B C) (S T) ((A . U) (B . V)))
Какие из перечисленных языков являются языками функционального программирования?
(1) Python
(2) Sisal
(3) Modula
(4) XML
Какое из приведенных S-выражений может играть роль представления функций в вычисляемой форме?
(1) (cons x x)
(2) (lambda (x) (car x))
(3) (defun fn (x ) (cons x x))
В каком случае при выяснении, совпадают ли заданные S-выражения, число обращений к себе функции equal (сравнение двух структур) указано верно?
(1) 1 ( b c d) ( b c a)
(2) 2 (a) (a)
(3) 2 ((a b) c) ((a b) d)
(4) 3 (a b c) (a b c d)
Результат какой из форм совпадает с фактически построенной структурой?
(1) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapc #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapl #'list '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте функцию со свободной переменной
(1) (lambda (x y) (cons z y))
(2) (lambda (x y) (cons y x))
(3) (lambda (x) (quote (A B C D)))
Какая из форм равнозначна (cons (car x) y)?
(1) (rplacd x y)
(2) (rplaca x y)
(3) (cons x (cdr y))
Какая из перечисленных команд используется при компиляции выражения (CADR n)?
(1) s e (JOIN ) (c . d) -> s e c d
(2) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(3) s e (LDF f . c) d -> ((f . e) . s) e c d
Какое из определений не использует функциональных переменных?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )
(2) (defun YDOT(LAMBDA(X Y FN)(MAPCAR FN X Y))))))
(3) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
Отметьте формы, открывающие файл так, чтобы он был пригоден только для чтения данных.
(1) (open file-in :direction :io )
(2) (open "protocol" :direction :input :if-does-not-exist :create)
(3) (open "history" :direction :output :if-exists :append :if-does-not-exist :create )
Какой из перечисленных механизмов реализации языка Лисп способствовал практичности функционального программирования?
(1) традиционное включение в реализацию и интерпретатора, и компилятора одновременно
(2) полнота средств управления вычислениями
(3) отсутствие "синтаксического сахара" в представлении программ
Какую из перечисленных функций неестественно включить в общее семейство?
(1) координаты точки
(2) площадь круга
(3) почтовый адрес
(4) номерок в гардеробе
Отметьте, в чем подобны варианты и множества.
(1) фиксированное число составляющих
(2) составляющие могут быть любой природы
(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))))
Результаты какой из функций не соответствуют спецификации: (X List(X)) -> X ?
(1) (lambda (x xl) (cond (xl (cond ((eq x (car xl))x)))))
(2) (lambda (x y) (car (print (list x x x ))) )
(3) (lambda (x y) (cons x Nil ))
Укажите тест, на котором функция Pairlis (см. лекцию 3) может завершиться аварийно из-за неподходящей структуры данных.
(1) ((A B C) (S T U) ((A . U) (B . V)))
(2) ((A B ) (S T U) ((A . U) (B . V)))
(3) ((A B C D) (S) ((A . U) (B . V)))
Отметьте систему, разработанную на базе Лиспа.
(1) Emacs – текстовый редактор в ОС UNIX
(2) ТОР – компактный текстовый редактор для MSX
(3) Q – встраиваемый текстовый редактор
В каком из приведенных S-выражений представления функций расположены корректно?
(1) (defun fn (x ) (cons x x)) (fn 123 )
(2) (два плюс три минус семь)
(3) ((cons 'один 'сто) 'два 'двести)
(4) (((lambda (x) (car x))) '(сто двадцать три))
На каких данных расход памяти (число cons) при вычислении функции subst (подстановка первого аргумента вместо второго в третий) превосходит длину последнего из аргументов?
(1) (x) y (a b x y c)
(2) x (y z) (a b x y z)
(3) (x y) z (a b (a z b) z)
(4) x (x y z) ((x y z) b x y z)
При вычислении какой из форм не возникнет проблем с выполнением отображающей функции на всех наборах аргументов?
(1) (maplist #'append '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapc #'+ '(1 2 3) '(a b c))
(3) (mapcar #'cons '(1 2 3) '(4 5 6) '(7 8 9))
Значение какого выражения - (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)
Какая из форм выдает (возвращает) результат (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)))
Какое выражение не эквивалентно коду программы на языке абстрактной машины (LD @n CDR CAR)?
(1) (CADR n )
(2) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))
(3) (CAR (CDR n))
Какие из определений содержит безымянную функциональную константу?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
(4) (lambda (v) (funcall (cond ((E P)S1) (T(E S2)) ) v)
Присутствие какого из перечисленных атомов можно обнаружить с помощью заданной формы (apropos 'CAR ) в системе программирования для языка Clisp?
(1) CADAR
(2) CADR
(3) MAPCAR
(4) CHAR
Какие операции входят в базис языка Лисп?
(1) atom
(2) cons
(3) cdr
(4) eq
(5) assos
(6) union
(7) car
Отметьте выражение, объявляющее новый класс.
(1) (defclass alltd () ((type :accessor td)) (:documentation "everyting"))
(2) (defun expr (sd) (cond ((eq sd 'ft) (print 'FT)) (T (print 'NEW))) ))
(3) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(4) (setf e3 (make-instance 'expr))
(5) (texpr e3 'expr)
(6) (setf (slot-value e3 'sd) (read))
(7) (td e3)
Чем отличается структура вариантов от множеств?
(1) могут быть разносортные элементы
(2) произвольный порядок задания составляющих
(3) одноуровневая структура вариантов, разделение по уровням иерархии неосмысленно
Вычисление какой подформулы может происходить или не происходить при исполнении общей формулы в зависимости от хода других вычислений?
(1) параметры обычных функций
(2) параметры арифметических мультиопераций
(3) параметры логических связок AND и OR
Какая из спецификаций аргументов и результатов соответствует определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))xl)))))
(1) (Atom List(Some)) -> List(Some)
(2) (Some List(Some))-> List(Some)
(3) (Atom List(Atom)) -> List(Atom)
Какой спецификации соответствует данный тест ((a . 1)( b . 2)( 3 . 4)).
(1) List(List(Atom))
(2) List ({Atom, Number})
(3) List ((Atom . Number))
Какой механизм реализации Лисп-систем встречается в системах программирования на базе языка Java?
(1) встроенная база данных для свойств символов
(2) неполная компиляция программ
(3) управление синтаксисом приема данных
Как можно изменить форму (cons (a 'три) (b 'четыре)), чтобы получить значение при заданных значениях переменных a и b, а не диагностическое сообщение?
(1) перед a и b вставить апостроф, блокирующий их вычисление, что дает (cons ('a 'три) ('b 'четыре))
(2) в начало каждого из аргументов следует вставить бинарную функцию, чтобы их значения вычислялись, например, (eq a 'три), (cons b 'четыре), получится (cons (eq 'a 'три) (cons 'b 'четыре))
(3) символы a и b заменить на их значения, например на 'шесть и 'пять соответственно, что даст нечто вроде (cons ('шесть 'три) ('пять 'четыре))
Какая из заданных форм пригодна для успешной интерпретации?
(1) (pairlis '(one two) '( t d f) '((7 . x)(8 . y)))
(2) (pairlis (one two ten) '(t d f) '((k . y)(m . z)))
(3) (pairlis '(one two ten) (LIST t d f) '((k . y)(m . z)))
В каком выражении не выполнима отображающая функция (несоответствие типов значений)?
(1) (mapcar #'+ '(1 (2) 3) '(4 5 6)'(7 8 9))
(2) (maplist #'list '(1 2 3) '(4 5 6) '( 7 8 9))
(3) (mapc #'list '(1 2 3) '(4 5 6) (list 7 8 9))
(4) (mapl #'list '(1 2 3) '(4 5 6) '(7 8 9))
Которое из выражений даст результат (Альфа Центавра)?
(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)) ' Альфа ' Центавра)
Какой список значений аргументов соответствует списку параметров вида (x y z &rest t)?
(1) (1 (2 3 4 5))
(2) ((CONS 'a 'b ))
(3) ('CONS (car x)(cdr x))
Какое выражение может при компиляции дать объектный код ( LD @n CDR CAR )?
(1) (LET ((a (CDR n)))(CAR a))
(2) (EQ (CAR n) 'QUOTE )
(3) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))
Какое из определений не содержит безымянных функций?
(1) (defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(2) (lambda (v) (funcall (lambda (x) (cons x x)) v)
(3) (defun fn (v) (funcall (cond ((EQ P v)(print S1)) ) v)
Какая из форм позволит увидеть формальное определение всех свойств атома в системе в данный момент в системе программирования для языка Clisp?
(1) (apropos 'FN )
(2) (symbol-plist 'fn)
(3) (documentation 'fn 'function)
(4) (describe 'fn)
Какой из перечисленных механизмов языка Лисп исторически применялся в практике реализации других языков программирования, например С?
(1) полнота средств управления вычислениями
(2) предельно простой синтаксис
(3) самоопределение языка программирования
Выделите выражение, обеспечивающее возможность прямого доступа к атрибутам объекта определяемого класса.
(1) (defclass expr () ((type :accessor td) (sd :accessor ft)))
(2) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(3) (texpr e3 'expr)
(4) (setf (slot-value e3 'sd) (read))
Какая задача легче описывается в терминах множеств, чем вариантов?
(1) перебор всех элементов структуры данных
(2) поиск элемента с заданным свойством в структуре данных
(3) выбор одного из возможных значений
Вычисление каких подформул не имеет смысла?
(1) обращения к функциям, которые могут зациклиться
(2) ветви условного выражения, соответствующие тождественно ложному предикату
(3) выражения, которые предстоит умножить на ноль
Какая из спецификаций результатов наиболее точно соответствует определению функции: (lambda (x xl) (cond (xl (eq x (car xl)) )) )
(1) Some
(2) Atom
(3) Bool
Какой из спецификаций не может соответствовать тест ((a . 1)( b . 2)( 3 . 4)).
(1) List(List(Atom))
(2) List ({Atom, Number})
(3) S ((Atom . Number))
Отметьте механизм реализации Лисп-систем, встречающийся в системах программирования на базе языка Perl?
(1) управление синтаксисом приема данных
(2) динамическое конструирование функциональных объектов
(3) открытый доступ из программы к основным компонентам системы
По какой причине не может быть вычислена форма ((cons x 'два) 'три). Что в ней надо подправить, чтобы добиться вычислимости?
(1) первый элемент списка имеет значение, но оно не представляет собой функцию. Например, можно перед ним вставить lambda (x ). Это даст форму ( (lambda (x )(cons x 'два)) 'три) и ее значение (три . два)
(2) первый элемент формы должен быть атомом, так что можно убрать скобки из аргументов, что дает (cons x 'два 'три )
(3) надо изображение переменной x заменить на конкретное значение, например 'шесть, что даст нечто вроде ((cons 'шесть 'два) 'три)
Какие из списков представляют перечень ветвей условного выражения (можно вставить cond вслед за первой скобкой)?
(1) (prog ()((null x) al) (T (CONS (CONS (CAR x) (CAR Y) ) (pairlis (CDR x) (CDR y) al) ))
(2) (((eq x (CAAR al)) (CAR x)) al) ((QUOTE T) (assoc x (CDR al)))
(3) ((eq(caar c)(cadar c)) (evcon(cdr c)a))
В какой из форм выполнение отображающей функции не зависит от числа аргументов?
(1) (mapcar #'CAR '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (maplist #'CONS '(7 8 9))
Которое из выражений не даст результат (Альфа Центавра) при любых значениях переменной?
(1) (cons ' Альфа x)
(2) ((lambda ( y) (cons y x)) ' Альфа)
(3) ((lambda (b) (list x b)) ' Альфа)
(4) ((lambda (b) (cons x (cons b Nil) )) '(Центавра))
Какой список аргументов не соответствует списку формальных параметров (x y z &rest t)?
(1) (1 2 3 4 5)
(2) Nil
(3) ((a)(b) (c))
(4) ('CONS (car x)(cdr x))
Какая команда машины SECD не нужна при компиляции выражения (CADR n )?
(1) s e (LD n . c) d -> (x . s) e c d , где x - это значение (N-th n e )
(2) ((a . b) . s) e (CAR . c) d -> (a . s) e c d
(3) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(4) s e (LDF f . c) d -> ((f . e) . s) e c d
В каком из приведенных определений вхождение функциональной переменной малосущественно, т.к. она не используется как функция?
(1) (defun MAPF(LAMBDA(L FN)(COND ((NULL L)NIL)(T(LIST FN L (MAP(CDR L)FN))))))
(2) (defun YDOT (X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
(3) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
Какая из форм позволит получить список атомов, имена которых содержат CAR, в системе программирования для языка Clisp?
(1) (apropos-list 'CAR )
(2) (symbol-plist 'fn)
(3) (documentation 'fn 'function)
(4) (symbol-plist 'fn)
Какие структуры данных используются для представления программ на языке Лисп?
(1) списки
(2) числа
(3) атомы
(4) вектора
Что из перечисленного можно рассматривать как объекты общего класса?
(1) бумага
(2) тетрадь
(3) фотоаппарат
(4) перекидной календарь
(5) портфель
Какое из определений недостаточно для четкого сигнала о попадании в тупик?
(1) (defun escape (x ) (throw 'esc (cons 'ESCAPE x)))
(2) (defun escape (x) (throw 'esc (print (list 'ESCAPE x))))
(3) (defun escape (x) (throw 'esc 'ESCAPE))
(4) (defun escape (x) (throw 'esc Nil))
В каких из перечисленных форм необходимость вычислять те или иные подвыражения зависит от значений переменных?
(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))))
Какие из функций соответствуют спецификации или аргументов, или результатов, но не того и другого сразу: (X List(X)) -> List(X)
(1) list
(2) (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
(3) cons
Отметьте тесты, соответствующие спецификации List (List(Atom)) => List (Atom).
(1) ( (a) (b c) (d e f) ) => (1 2 3)
(2) ( (a) () (1 2 3 4) ) => (A B C D)
(3) (()) => Nil
(4) (1 2 3) => (1 2 3)
(5) (A B C D) => (1 2 3)
(6) () => ()
(7) (1( 2) 3) => (1 2 3)
(8) (1 2 3) => (A B)
(9) A => B
(10) (1 2 3) => ((1) () 2 3)
(11) (() 1 () 2 () 3) => (1 2 3)
Какие стили программирования отражают влияние идей Лиспа?
(1) символьное программирование
(2) декларативное программирование
(3) машинно-ориентированное программирование
Какие из приведенных данных не представляют собой ни список, ни S-выражение?
(1) ( ( cons (a b) NIL )
(2) ;; (a b c)
(3) (a . (b . с))
(4) (list a1 b2 c31 d42 )
На каком данном функция append (сцепление двух списков) даст результат сразу, без рекурсии?
(1) (a b) (c d)
(2) () (a b c)
(3) Nil ((a b) c d)
(4) (a b c d) ()
Какие из перечисленных форм одинаково обрабатывают исходные данные?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcan #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (maplist #'list '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapc #'* '(11 22 33) '(44 55 66) '(77 88 99))
Отметьте 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))
Какие формы могут работать как эквиваленты?
(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)) )
Какие из перечисленных команд SECD увеличивают размер стека результатов?
(1) s e (LDC q . c) d -> (q . s) e c d
(2) s e (LD n . c) d -> (x . s) e c d , где x - это значение (N-th n e )
(3) (a . s) e (ADD1 . c) d -> (a+1 . s) e c d
(4) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(5) ((a . b) . s) e (CDR . c) d -> (b . s) e c d
(6) (a . s) e (ATOM . c) d -> (t . s) e c d
Какие из приведенных определений вызывают при компиляции обработку свободных переменных?
(1) (LAMBDA (A) (PROG (B С) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y)))))
(3) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))
(4) (lambda (v) (assoc-i X N v))
Какие из перечисленных функций, составляющих структуры данных, являются деструктивными аналогами других функций в языке Clisp?
(1) nconc
(2) nsubst
(3) nunion
(4) list
(5) Pairlis
(6) sort
Выделите выражения, осуществляющие доступ к атрибутам объекта без изменения их значений.
(1) (defclass expr () ((type :accessor td) (sd :accessor ft)))
(2) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(3) (setf e3 (make-instance 'expr))
(4) (texpr e3 'expr)
(5) (setf (slot-value e3 'sd) (read))
(6) (td e3)
Какие особенности множеств не характерны для вариантов?
(1) определяется всей совокупностью различимых элементов
(2) возможна многоуровневая организация - иерархия
(3) могут быть разносортные элементы
(4) произвольный порядок задания составляющих
Какие средства позволяют программисту оптимизировать Лисп-программы методом "ленивых" вычислений?
(1) лямбда-конструктор (lambda)
(2) блокировка вычислений (quote)
(3) открытый доступ к интерпретации (eval, apply, funcall)
(4) встроенный компилятор (compile)
Какие из спецификаций результатов соответствуют определению функции: (lambda (x xl) (cond (xl (cond ((eq x (car xl))T)))))
(1) Some
(2) Atom
(3) Bool
Отметьте спецификации, которым соответствует функция Pairlis.
(1) (List(Atom) List(Some) List((Atom . Some))) => List((Atom . Some))
(2) (List(Some) List(Some) List((Some . Some))) => List((Some . Some))
(3) (List(Atom) List(Number) List((Atom . Number))) => List((Atom . Number))
Какие механизмы реализации Лисп-систем встречаются в современных системах программирования на базе языка Perl?
(1) понятие ассоциативной таблицы, реализованное как хэш-таблица
(2) встроенная база данных для свойств символов
(3) управление синтаксисом приема данных
(4) динамическое конструирование функциональных объектов
(5) открытый доступ из программы к основным компонентам системы
Как преобразовать форму (cons 'a1 'b2 'c3 'd4), чтобы получить выражение, имеющее значение?
(1) оставить в списке аргументов только два элемента
(2) заменить "cons" на "list" - функция, строящая список из произвольного числа элементов
(3) заменить атомы на списки
(4) убрать апострофы перед аргументами
На каких данных расход памяти при вычислении функции subst (подстановка первого аргумента вместо второго в заданную структуру) пропорционален объему последнего из аргументов?
(1) (x) y (a b x y c)
(2) x (y z) (a b x y z)
(3) (x y) z (a b (a z b) z)
(4) x (y z) ((a y z) b c d )
Какие из форм дают формально одинаковый результат?
(1) (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapcar #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapc #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(4) (mapl #'list '(1 2 3) '(4 5 6) '(7 8 9))
Отметьте выражения со свободными переменными
(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)))
Какие из форм вырабатывают одинаковые значения?
(1) (rplacd x y)
(2) (rplaca x y)
(3) (cons (car x) y)
(4) (cons x (cdr y))
Какое выражение может быть исходным для объектного кода ( LD @n CDR CAR )?
(1) (CADR n )
(2) (EQ (CAR n) 'QUOTE )
(3) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))
Какие из приведенных определений могут вызывать при компиляции обработку функциональных переменных?
(1) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
(2) (defun YDOT (X Y)(MAPLIST X(FUNCTION(LAMBDA(J)(CONS(CAR J)Y)))))
(3) (defun MAP (L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN)))))
(4) (lambda (w) ((lambda (v)(cond ( (w 'E v) 'S)(T v))))
Отметьте формы, открывающие файл так, чтобы он был пригоден для чтения данных
(1) (open file-in :direction :input )
(2) (open "protocol" :direction :io :if-does-not-exist :create)
(3) (open "history" :direction :output :if-exists :append :if-does-not-exist :create )
Отметьте выражение, объявляющее новый метод.
(1) (defclass alltd () ((type :accessor td)) (:documentation "everyting"))
(2) (defclass expr (alltd) ((sd :accessor ft)) (:documentation "C-expression"))
(3) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(4) (setf e3 (make-instance 'expr))
(5) (texpr e3 'expr)
(6) (setf (slot-value e3 'sd) (read))
(7) (td e3)
Какой механизм реализации Лисп-систем встречаются в таких системах программирования, как Delphi?
(1) использование макро-техники для генерации типовых компонентов программы
(2) <сборка мусора> – автоматизация повторного использования памяти
(3) управление синтаксисом приема данных
Как можно изменить форму (cons (a 'три) (b 'два)), чтобы увидеть ее значение при заданных a и b, а не диагностическое сообщение?
(1) убрать внутренние скобки, что дает (cons a 'три b 'два)
(2) аргументы функций передать как фактические параметры, что дает форму ((lambda (x y)(cons x y)) '(a 'три) '(b 'два))
(3) символы a и b надо стереть, что даст нечто вроде (cons ('три) ('два))
Выделите выражение, осуществляющее прямой доступ к атрибуту объекта без изменения его значения.
(1) (setf (slot-value e3 'sd) (read))
(2) (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x 'type) nt) (setf (td x) nt))
(3) (td e3)
(4) (texpr e3 'expr)
Какой из тестов соответствует спецификации List (Atom) => List ({Number, Atom}).
(1) (1 2 3) => (A B)
(2) (1 A 2 B 3 C) => ((1) (A) 2 3)
(3) ( 3 (A) 1 (B) 2 (C) ) => (1 2 3)
Какая из форм сохраняет исходные данные?
(1) (mapcan #'+ '(1 2 3) '(4 5 6) '(7 8 9))
(2) (mapl #'list '(1 2 3) '(4 5 6) '(7 8 9))
(3) (mapcon #'list '(1 2 3) '(4 5 6) '(7 8 9))
Какая из перечисленных команд SECD удлиняет стек результатов (S)?
(1) s e (LD n . c) d -> (x . s) e c d , где x - это значение (N-th n e )
(2) (a b . s) e (CONS . c) d -> ((a . b) . s) e c d
(3) (a . s) e (ATOM . c) d -> (t . s) e c d
Отметьте языки функционального программирования?
(1) Sisal
(2) XML
(3) ML
(4) Fortran
Отметьте создание глобальной переменной
(1) (setq a 'b)
(2) (defconstant a 'a)
(3) (defun a 'a)
Какое из приведенных S-выражений не может изображать функцию в Лисп-программе?
(1) Cons
(2) (lambda (x) (car x))
(3) (defun fn (x ) (cons x x))
Отметьте правильное число обращений к CONS, которое произойдет при выполнении функции append (соединение двух списков в один) на заданных аргументах.
(1) 4 (a b) (c d)
(2) 3 (z x y) (w v)
(3) 1 (a d c)(a)
(4) 3 (a b) (a c d e)
В каком случае указанная форма последовательно вычислит ряд выражений 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)