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



Авторы специализируются на тестах по любым дисциплинам! Средний балл по тестам 4,6.
 
Любые вопросы по дистанционному обучению. Тесты, письменные работы, сессия под ключ.
 
Известный интернет сайт, помощь по любым учебным вопросам - от теста до дипломной работы. Личный менеджер.
 
Крупная биржа студенческих работ. Закажи напрямую у преподавателя. Низкие цены, стена заказов.
 

В каком определении функция зависит от свободных переменных?

  • (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X)))
  • (lambda (v) (cons ‘ATOM (eq ‘COND v)))
  • (Правильный ответ) (lambda (v)(list N v X (E A)))

Какой метод решения задач особенно характерен для функционального программирования?

  • (Правильный ответ) символьная обработка информации
  • преобразование состояний памяти
  • обработка сигналов

Какой из перечисленных механизмов реализации языка Лисп способствовал практическому успеху функционального программирования?

  • (Правильный ответ) автоматизация повторного использования памяти — «сбор мусора»
  • математическая основа исходных понятий
  • отсутствие «синтаксического сахара» в представлении программ

Какая особенность функционального подхода дает путь к достижению надежности программ?

  • (Правильный ответ) доказательность основных построений при разработке универсальных функций
  • разнообразие встроенных функций и библиотек
  • высокий уровень языковых средств

Кто впервые сформулировал идеи языка программирования, послужившие основой для функционального программирования?

  • Николас Вирт
  • Тони Хоар
  • (Правильный ответ) Джон Мак-Карти

Какое из перечисленных свойств не присуще функциональному программированию как методу организации процессов?

  • эффективность реализации алгоритмов
  • (Правильный ответ) близость структур данных к специфике оборудования
  • абстрагирование данных и программ их обработки

Чьи идеи языковой поддержки задач искусственного интеллекта реализованы как язык программирования Lisp?

  • Святослав Сергеевич Лавров
  • (Правильный ответ) Джон Мак-Карти
  • Джон Бэкус

Отметьте атомы, представляющие функции, входящие в базис языка Лисп?

  • delete
  • (Правильный ответ) eq
  • (Правильный ответ) cons
  • subst
  • (Правильный ответ) atom

Какой из перечисленных механизмов реализации языка Лисп способствовал практичности функционального программирования?

  • (Правильный ответ) традиционное включение в реализацию и интерпретатора, и компилятора одновременно
  • полнота средств управления вычислениями
  • отсутствие «синтаксического сахара» в представлении программ

Отметьте название языка программирования, в котором впервые поддержаны идеи функционального программирования

  • (Правильный ответ) Lisp
  • Python
  • Prolog

Какой из приведенных текстов не изображает ни список, ни сложное S-выражение?

  • (Правильный ответ) атом
  • ( cons (a b) NIL )
  • (три, четыре, пять)
  • (eq a b)

Какое из приведенных S-выражений может играть роль представления функций в Лисп-программе?

  • (defun fn (x ) (cons x x))
  • (lambda car x)
  • (Правильный ответ) (Label Первый Car)

По какой причине не может быть вычислена форма ((cons x ‘два) ‘три). Что в ней надо подправить, чтобы добиться вычислимости?

  • (Правильный ответ) первый элемент списка имеет значение, но оно не представляет собой функцию. Например, можно перед ним вставить lambda (x ). Это даст форму ( (lambda (x )(cons x ‘два)) ‘три) и ее значение (три . два)
  • первый элемент формы должен быть атомом, так что можно убрать скобки из аргументов, что дает (cons x ‘два ‘три )
  • надо изображение переменной x заменить на конкретное значение, например ‘шесть, что даст нечто вроде ((cons ‘шесть ‘два) ‘три)

Какое из приведенных данных представляет собой составное S-выражение?

  • atom
  • (Правильный ответ) (car (quote (cons a b)))
  • ( cons (a b) NIL )

Какой из приведенных текстов не представляет собой ни список, ни сложное S-выражение?

  • (один, два, три, четыре, два)
  • (eq a (b . c))
  • (Правильный ответ) ;; (a b c)

В каком из приведенных S-выражений представления функций расположены корректно?

  • (Правильный ответ) (defun fn (x ) (cons x x)) (fn 123 )
  • ((cons ‘один ‘сто) ‘два ‘двести)
  • (((lambda (x) (car x))) ‘(сто двадцать три))
  • (два плюс три минус семь)

Что можно подправить, чтобы форма (cons ‘один ‘два ‘три) имела значение?

  • (Правильный ответ) оставить в списке только два аргумента
  • заменить атомы списками
  • поставить апострофы перед атомами

Как можно воздействовать на форму (cons (a ‘два) (b ‘семь)), чтобы интерпретатор обязательно выдал ее значение, а не диагностическое сообщение?

  • (Правильный ответ) символы a и b можно заменить на имена унарных функций над атомами, например atom или quote, что дает (cons (atom ‘два) (quote ‘семь))
  • в начало каждого из аргументов следует вставить бинарную функцию, например, (eq a ‘два), (cons b ‘семь) в результате получится (cons (eq a ‘два) (cons b ‘семь))
  • заменить a и b на атом car, что дает (cons (car ‘два) (car ‘семь))

Почему форма ((cons ‘a1 ‘b2) ‘c3) не может быть вычислена?

  • первый элемент формы должен быть атомом
  • функция cons не приспособлена к работе с атомами
  • (Правильный ответ) потерян головной элемент списка, возможно, было (cons (cons ‘a1 ‘b2) ‘c3)
  • (Правильный ответ) первый элемент списка имеет значение, но оно не представляет собой функцию

Какие из приведенных данных не представляют собой ни список, ни S-выражение?

  • (a . (b . с))
  • (Правильный ответ) ;; (a b c)
  • (Правильный ответ) ( ( cons (a b) NIL )
  • (list a1 b2 c31 d42 )

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

  • (Правильный ответ) (((eval(caar c)a)(eval(cadar c)a))(T(evcon(cdr c)a)))
  • (((null m)(cons(eval(car m)a)(evlis(cdr m)a)))
  • ((eq x (CAAR x)) (CAR al)) ((QUOTE T) (assoc x (CDR al)))

В каком случае правильно указано число обращений к CONS, которое произойдет
при выполнении функции append (соединение двух списков в один) на заданных аргументах?

  • 5 (z x y) (w v)
  • (Правильный ответ) 2 (a b) (c d)
  • 1 (a d c)(a)
  • 4 (a b) (a c d e)

На каком наборе данных функция member (поиск заданного элемента из списка) выполнит ровно одно обращение к самой себе?

  • d (a b c d e f)
  • (Правильный ответ) f (a )
  • a (a c d e a f)

Какое из заданных выражений имеет определенный результат?
(pairlis – наращивает список пар, соединяя в пары элементы первых двух аргументов)

  • (pairlis (cons a b) ‘(t d f) ‘((k . y)(p . y)))
  • (Правильный ответ) (pairlis () () ‘((k . y) (p . y)) )
  • (pairlis (cons a b) ( t d f) ((ten . x)(two . y)))

На каком наборе данных функция insert (вставляет в список перед заданным элементом третий аргумент) сделает менее трех обращений к самой себе?

  • (Правильный ответ) (a b c d) a c
  • (a b c d e) f c
  • (b c d e a) a b

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

  • 2 ((a b) c) ((a b) d)
  • 1 (a) (a)
  • (Правильный ответ) 4 (a b c) (a b c d)

В каких случаях правильно указано число обращений к CONS, которое произойдет при выполнении функции append (сцепление списков) на указанных аргументах?

  • (Правильный ответ) append 2 (a b) (c d)
  • append 1 (a d c)(a)
  • (Правильный ответ) append 3 (z x y) (w v)
  • append 4 (a b) (a c d e)

Какое из выражений при вычислении не искажает исходные данные?

  • (Правильный ответ) (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 #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (mapl #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))

В какой из форм несоответствия типов значений помешает выполнению отображающей функции?

  • (mapcar #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (maplist #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (Правильный ответ) (mapc #’+ ‘(1 2 3) ‘(4 5 6) (+ 7 8 9))

В какой из форм выполнение отображающей функции не зависит от числа аргументов?

  • (mapcar #’CAR ‘(4 5 6) ‘(7 8 9))
  • (Правильный ответ) (mapcar #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (maplist #’CONS ‘(7 8 9))

Какая из форм опасна для сохранения исходных данных?

  • (Правильный ответ) (mapcon #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (mapc #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (maplist #’list ‘(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))
  • (Правильный ответ) (mapc #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))

Какая из форм сохраняет исходные данные?

  • (Правильный ответ) (mapl #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (mapcon #’list ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))
  • (mapcan #’+ ‘(1 2 3) ‘(4 5 6) ‘(7 8 9))

Какое из S-выражений не равносильно (A (B C) D (E))?

  • (Правильный ответ) (A . (B . ((C . (D . Nil)) . (E . Nil))) )
  • (A (B C) . (D ( E . Nil)))
  • (A (B . (C . Nil)) 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))) )

Отметьте функцию со свободной переменной

  • (Правильный ответ) (lambda (x y) (cons z y))
  • (lambda (x y) (cons y x))
  • (lambda (x) (quote (A B C D)))

Которое из выражений даст результат (Альфа Центавра)?

  • ((lambda (x y) (list ‘x ‘y)) ‘ Альфа ‘ Центавра)
  • ((lambda (x y) (cons x y)) ‘ Альфа ‘ Центавра)
  • (Правильный ответ) ((lambda (x ) (list x ‘ Центавра)) ‘ Альфа )
  • ((lambda (x y) (list x ‘ Центр)) ‘ Альфа ‘ Центавра )

Какое выражение даст результат (A . B)?

  • ((lambda (y x) (cons x y)) ‘a ‘b)
  • (Правильный ответ) (cons ‘a ‘b)
  • ((lambda (x) (cons x ‘A)) ‘b )

Которое из выражений построит список (Альфа Центавра)?

  • ((lambda (x y) (list y x )) ‘ Альфа ‘ Центавра)
  • ((lambda (x y) (cons x y)) ‘ Альфа ‘ Центавра)
  • (Правильный ответ) ((lambda (x y) (list x y)) ‘ Альфа ‘ Центавра)

Которое из выражений не может дать результат (Альфа Центавра) независимо от значения переменной?

  • ((lambda ( y) (cons y x)) ‘ Альфа)
  • ((lambda (b) (list b x)) ‘ Альфа)
  • ((lambda (b) (list x b)) ‘(Центавра))
  • (Правильный ответ) (cons ‘(Центавра) x)

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

  • ((CONS ‘a ‘b ))
  • (Правильный ответ) (1 2 3 4 5)
  • (1 (2 3 4 5))

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

  • ((lambda (a1 a2 a3) a1 (list a2 aN )) e1 e2 e3)
  • (Правильный ответ) (prog (x y …) (setq x e1) e2 e3 (return x) )
  • (let ((a1 e1)(a2 e2) (a3 e3)) a1 a2)

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

  • ((lambda (x)(cons x x))(+ 1 2))
  • (Правильный ответ) (prog (x)(setq x (+ 1 2)) (print (cons x x)))
  • (cons (+ 1 2)(+ 1 2))
  • (prog (x)(setq x (+ 1 2)) (return (cons x 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 ((null L)Nil) (T (Cons 1 (LN (cdr L)))) ))

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

  • (‘CONS (car x)(cdr x))
  • (1 2 3 4 5)
  • ((a)(b) (c))
  • (Правильный ответ) ((CONS ‘a ‘b ))

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

  • (Правильный ответ) (union ‘(1 2 3 4) ‘(1 2 3 5))
  • (union ‘(1 2 3 ) Nil)
  • (union Nil ‘(1 2 3 1 2 3))

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

  • (union ‘(1 2 3 ) NIL )
  • (Правильный ответ) (union Nil ‘(1 2 3 1 2 3))
  • (union ‘(1 2 3 1 2 3) Nil)
  • (union ‘(1 2 3) ‘(1 2 3))

Какая из перечисленных команд 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 (CONS . c) d -> ((a . b) . s) e c d
  • (a b . s) e (EQ . c) d -> (t . s) e c d , где t — логическое значение.

Какая из перечисленных команд SECD изменяет состояние дампа (D)?

  • (a . s) e (ATOM . c) d -> (t . s) e c d
  • (Правильный ответ) s e (JOIN) (c . d) -> s e c d
  • (a b . s) e (CONS . c) d -> ((a . b) . s) e c d

Какое выражение не эквивалентно коду программы на языке абстрактной машины (LD @n CDR CAR)?

  • (CADR n )
  • (CAR (CDR n))
  • (Правильный ответ) (COND ((EQ n 0 )(CAR l )) (T (CONS (SUB1 n ) (CDR l ) )) ))

Какая из перечисленных команд понадобятся при компиляции выражения (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

Какая из перечисленных команд SECD укорачивает стек результатов (S)?

  • (Правильный ответ) (a b . s) e (EQ . c) d -> (t . s) e c d , где t — логическое значение.
  • (a . s) e (ATOM . c) d -> (t . s) e c d
  • ((a . b) . s) e (CDR . c) d -> (b . s) e c d
  • s e (LDC q . c) d -> (q . s) e c d

Какой код может быть результатом компиляции выражения (CADR n )?

  • (Правильный ответ) ( LD @n CDR CAR )
  • ( LD @n CAR LDC QUOTE EQ )
  • ( LD @n LDc 0 EQ SEL (LD @l CAR JOIN ) (LD @n SUB1 LD @l CDR CONS JOIN ))

В какое из определений не входят свободные переменные?

  • (lambda (v) (assoc X N v))
  • (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
  • (Правильный ответ) (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)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))

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

  • (Правильный ответ) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) )
  • (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
  • (defun YDOT(LAMBDA(X Y FN)(MAPCAR FN X Y))))))

Какие из определений содержит безымянную функциональную константу?

  • (lambda (v) (funcall (cond ((E P)S1) (T(E S2)) ) v)
  • (defun MAP(LAMBDA(L FN)(COND ((NULL L)NIL)(T(CONS(FN L)(MAP(CDR L)FN))))))
  • (Правильный ответ) (defun YDOT(LAMBDA(X 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) (cons ‘ATOM (eq ‘COND v)))
  • (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
  • (lambda (v) (assoc-i X N v))

В каком определении имеются свободные переменные?

  • (Правильный ответ) (LAMBDA (A) (PROG (B) S (SETQ B A) (SETQ C (CONS (CAR A) C)) (GO S) ))
  • (lambda (v) (cons ‘ATOM (eq ‘COND v)))
  • (defun YDOT(LAMBDA(X Y)(MAPLIST (FUNCTION(LAMBDA(J)(CONS(CAR J)Y))) X )))

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

  • (Правильный ответ) (open «dump» :direction :output :if-exists :append :if-does-not-exist :create )
  • (open «context» :direction :output :if-exists :rename)
  • (open «remark» :direction :output :if-exists :overwrite :if-does-not-exist :error)

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

  • (Правильный ответ) reverse
  • sort
  • pairlis
  • list

Замена какой из перечисленных функций на имеющийся в языке Clisp деструктивный аналог повышает эффективность программ без потери функциональной эквивалентности?

  • list
  • sort
  • pairlis
  • (Правильный ответ) union

Какая из перечисленных функций, строящих структуры данных, имеет в языке Clisp деструктивный аналог, позволяющий повышать эффективность функциональных программ?

  • pairlis
  • (Правильный ответ) append
  • list
  • sort

Какая из форм позволит получить список атомов, имена которых содержат CAR, в системе программирования для языка Clisp?

  • (symbol-plist ‘fn)
  • (documentation ‘fn ‘function)
  • (Правильный ответ) (apropos-list ‘CAR )
  • (symbol-plist ‘fn)

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

  • Subst
  • sort
  • list
  • Pairlis
  • (Правильный ответ) nsubst

Какая из форм позволит получить список атомов, имена которых содержат CAR, в системе программирования для языка Clisp?

  • (symbol-plist ‘fn)
  • (Правильный ответ) (apropos-list ‘CAR )
  • (documentation ‘fn ‘function)
  • (symbol-plist ‘fn)

Выделите выражение, обеспечивающее возможность прямого доступа к атрибутам объекта определяемого класса.

  • (Правильный ответ) (defclass expr () ((type :accessor td) (sd :accessor ft)))
  • (setf (slot-value e3 ‘sd) (read))
  • (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x ‘type) nt) (setf (td x) nt))
  • (texpr e3 ‘expr)

Что из перечисленного имеет смысл вычислять по методу с именем <мера>?

  • уровень потребностей
  • охват проблемы
  • широта души
  • (Правильный ответ) вес конструируемого прибора

Что из перечисленного можно рассматривать как основную характеристику объекта класса «кривые второго порядка»?

  • координаты точек пересечения с осями
  • (Правильный ответ) коэффициенты уравнения для прорисовки линии
  • толщина линии при рисовании

Что из перечисленного не стоит рассматривать как объект класса <мебель>?

  • стол
  • шкаф
  • кресло
  • (Правильный ответ) телевизор

Отметьте выражение, объявляющее новый класс.

  • (setf (slot-value e3 ‘sd) (read))
  • (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x ‘type) nt) (setf (td x) nt))
  • (setf e3 (make-instance ‘expr))
  • (Правильный ответ) (defclass alltd () ((type :accessor td)) (:documentation «everyting»))
  • (td e3)
  • (texpr e3 ‘expr)
  • (defun expr (sd) (cond ((eq sd ‘ft) (print ‘FT)) (T (print ‘NEW))) ))

Что из перечисленного удобно рассматривать как объект того же класса, что и <тетрадь>?

  • степлер
  • скрепка
  • кнопка
  • (Правильный ответ) блокнот
  • (Правильный ответ) записная книжка
  • карандаш

Что из перечисленного можно рассматривать как объекты одного класса?

  • (Правильный ответ) стул
  • стан
  • (Правильный ответ) стол

Выделите выражения, осуществляющие доступ к атрибутам объекта без изменения их значений.

  • (Правильный ответ) (td e3)
  • (Правильный ответ) (defclass expr () ((type :accessor td) (sd :accessor ft)))
  • (texpr e3 ‘expr)
  • (defmethod texrp ((x expr) (nt atom)) (setf (slot-value x ‘type) nt) (setf (td x) nt))
  • (setf (slot-value e3 ‘sd) (read))
  • (Правильный ответ) (setf e3 (make-instance ‘expr))

Отметьте, в чем подобны варианты и множества.

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

Какая задача легче описывается в терминах множеств, чем вариантов?

  • выбор одного из возможных значений
  • поиск элемента с заданным свойством в структуре данных
  • (Правильный ответ) перебор всех элементов структуры данных

Какое из определений при попадании в тупик позволяет передать зн