Главная / Программирование / Введение в программирование на Лиспе

Введение в программирование на Лиспе - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: За почти полувековую историю своего существования язык Лисп зарекомендовал себя как система с практически неограниченными возможностями символьного программирования. Лисп и его диалекты послужили основой широкого спектра прикладных разработок, оказавших существенное влияние на распространение информационных технологий.
Основная структура данных языка Лисп:
(1) атом
(2) список
(3) таблица
Для каких целей в Лисп-системе используют список свойств атома:
(1) для хранения значений переменных, определений функции и других свойств, в т.ч. создаваемых самим программистом
(2) для хранения данных о состоянии ячейки памяти, занимаемой атомом
(3) для хранения контекста, в котором используется данный атом
Какие из приведенных ниже высказываний являются верными:
(1) метки в prog-форма реализуются с помощью специальной функции label
(2) Prog-форма может быть рекурсивной
(3) выход из prog-формы происходит при вызове функции return
Как устроен основной рабочий цикл диалога с Лисп-системой:
(1) чтение - печать – вычисление – печать
(2) вычисление – печать
(3) чтение-вычисление
Каким образом можно загрузить Лисп-программу из файла:
(1) после вызова Лисп-системы набрать в командной строке (load 'имяфайла)
(2) необходимо создать файл с расширением .lsp, без дополнительной настройки ОС сама воспримет его как файл с программой
(3) необходимо в файл перед строкой вида (выражение) вставить строку (eval (read))
Что такое Атом:
(1) это последовательность, состоящая из букв и цифр
(2) это последовательность, состоящая из букв и цифр, начинающаяся с буквы
(3) это последовательность, состоящая из букв и цифр, начинающаяся с цифры
Каким образом в Лиспе изображаются имена переменных и функций:
(1) с помощью списков
(2) с помощью знака апострофа " ' " перед именем функции или переменной
(3) с помощью атомов
Какие способы представления структур данных используются в Лиспе:
(1) списочная и точечная нотации
(2) в виде дерева, списочная и точечная нотации
(3) только списочная и строковая
Универсальная функция eval в базовом Лиспе – это:
(1) функция, строящая значения только рекурсивных форм
(2) вычисляющая только базисные функции
(3) функция, строящая значения вычислимых форм
Функционалом называют функцию:
(1) аргументами которой могут выступать символьные выражения
(2) аргументами или результатом которой могут выступать другие функции
(3) аргументами которой могут выступать значения, полученные вычислением других функций
Укажите, какие функции являются псевдо-функциями Лисп-системы:
(1) (cond)
(2) (union)
(3) (setq)
Каким образом реализуются замедленные вычисления:
(1) запоминанием символьного выражения с контекстом его вычисления
(2) блокировкой вычислений и запоминанием текущего состояния стэка
(3) формированием рецептов и запоминанием текущего состояния памяти
Какое фундаментальное понятие лежит в основе языка Лисп:
(1) атом
(2) функция
(3) S-выражение
(4) подпрограмма
Для чего необходима сборка "мусор":
(1) для повторного распределения памяти
(2) для очищения памяти после завершения работы системы
(3) для очищения памяти перед запуском Лисп-системы
Какая из форм, представленных ниже, описывает оператор присваивания set, где Alist – ассоциативный список системы:
(1) (defun set (x y) (cons x y) Alist)
(2) (defun set (x y) (eval '(cons x y) Alist) )
(3) (defun set (x y) (assign x y Alist) )
Какая информация содержится в файле lispinit.mem, входящем в состав Лисп-системы:
(1) исходные тексты программ
(2) начальный образ состояния памяти
(3) конфигурации системы
Элементарными функциями в Лисп системе называют:
(1) любые неделимые элементы - атомы
(2) атомы, определенные как подпрограммы на уровне исполняемого кода
(3) встраиваемые S-выражения, имеющие определения на уровне исполнимого кода
Какие из представленных ниже форм представляет одноэлементный список в Лиспе:
(1) ABC
(2) (ABC)
(3) (NIL ABC)
Какая из перечисленных ниже форм вычислима:
(1) (Cons (A B С) 'B)
(2) (Atom (Quote A B C))
(3) (EQ (Atom (quote A)) (Atom '(Abc)))
Какие из представленных ниже форм являются вычислимыми формами языка Лисп:
(1) (a1 a2 a3), где a1 – функция, a2 и a3 аргументы
(2) 'abcd
(3) abcd, где abcd –переменная
(4) (v abcd), где v и abcd – переменные
В каком порядке будет вычислено выражение (cons (car x) (car y)):
(1) сначала будут получены значения x и y, затем в порядке следования выполнены операции cons, cdr и car
(2) сначала будут получены значение переменной x и результат (car x), затем переменной y и результат (car y), а в конце будет выполнена операция cons с результатами (car x) и (car y)
(3) сначала будут получены значение переменной x, затем переменной y, а в конце будет выполнена операция cons с результатами (car x) и (car y)
Какие факторы должны быть учтены при определении отображающей функции:
(1) способ получения результата из отображаемого множества
(2) как распределить память под новое множество и определение функции
(3) каким языком воспользоваться для написания этой функции
Какой из результатов вычисления формы (union '(1 2 3) '(1 2 5)) будет получен (учесть порядок следования элементов итогового списка). Функция Union имеет следующее определение: (DEFUN UNION (X Y) (COND ((NULL X) Y) ((MEMBER (CAR X) Y) (UNION (CDR X) Y) ) (T (CONS (CAR X) (UNION (CDR X) Y))) )) ) ))
(1) (1 2 3 5)
(2) (3 2 5 1)
(3) (1 2 5 3)
(4) (3 1 2 5)
В чем заключается преимущество использования ленивых вычислений:
(1) экономия времени за счет исключения невостребованных вычислений
(2) экономия памяти
(3) экономия времени при проектировании программы
Программа на языке Лисп это:
(1) последовательность вычисляемых идентификаторов
(2) последовательность вычисляемых выражений
(3) последовательность вычисляемых списков
Каким образом хранятся S-выражения в памяти:
(1) в виде древовидного списка фиксированной длины
(2) в виде линейного списка фиксированной длины
(3) в виде древовидного списка неограниченной длины
(4) в виде хэш-таблицы
Какая из форм может служить аналогом подпрограммы на Pascal procedure pr(x: integer); begin a:=0; for i:=1 to x do a:=a+1; print (a); end;
(1) (defun pr(x) (prog (a) (setq a 0) B (cond ((= a x) (print a)(return a) ) ) (setq a (+ a 1)) (go B) ))
(2) (defun pr(x) (prog (a) B (cond ((= a x) (print a)(return a) ) ) (setq a (+ a 1)) (go B) ))
(3) (prog pr () (setq a 0) B (cond ((= a x) (print a)(return a) ) ) (setq a (+ a 1)) (go B) )
Какие известные программные продукты были реализованы с помощью Лисп-систем:
(1) система инженерных расчетов AutoCAD
(2) операционная система Unix
(3) графический редактор Photoshop
Какое событие произойдет после введения в строку интерпретатора выражения (Cons 'a BC):
(1) система выдаст правильный результат
(2) появится сообщение об ошибке, что переменная "a" не имеет значения
(3) появится сообщение об ошибке, что переменная "BC" не имеет значения
Какие из перечисленных представлений являются несписочным S-выражением:
(1) (A)
(2) (A . B)
(3) '(A)
Какие события происходят в системе при вычислении интерпретатором формы ((lambda (x y) (cons x y)) 'A 'B):
(1) в системе создается функциональный объект с именем Lambda
(2) данная форма останется доступной в системе с возможностью многократного ее вызова с различными значениями переменных X и Y
(3) переменная X связывается со значением A, Y – с B, выполняется однократное вычисление безымянной функции, строящей пару (A . B)
В каких случаях правильно указано число обращений к функции Cons при вызове функции subst, имеющей определение (DEFUN subst (x y z) (COND ((equal y z) x) ((ATOM z) z) ((QUOTE T)(CONS (subst x y (CAR z)) (subst x y (CDR z)) ) )))

, со следующими аргументами (порядок следования x y z):

(1) обращений – 4, аргументы x- (1 2), y - (3 4), z - (1 2 3 4)
(2) обращений – 0, аргументы x- A, y - B, z – C
(3) обращений – 3, аргументы x- A, y - A, z - (A B C)
(4) обращений – 2, аргументы x- (1 2), y - A, z - (B A C D)
Какое назначение имеет функция apply, входящая в состав интерпретатора:
(1) функция обеспечивает вычисление предикатов условного выражения
(2) применение функции, подаваемой в качестве параметра в apply, к ее аргументам – то и другое представлено как данные Лиспа
(3) только вычисление вложенных функций
Какое из приведенных ниже выражений является примером правильного использования функционала map-el: (defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )
(1) (map-el caddr '(1 2 3 4))
(2) (map-el '(1 2 3 4))
(3) (map-el '+ '(1 2 3 4))
(4) (map-el '(1 2 3 4) #'caddr)
(5) (map-el #'car '((1)(2)(3)(4)))
Укажите, какая из приведенных ниже форм является специальной:
(1) (Atom x)
(2) (Eq x1 x2)
(3) (Cond (x (cons 1 (cdr x)) ))
(4) T
Приостановка и последующее возобновление вычислений называется:
(1) вызовом по указателю
(2) вызовом по значению
(3) вызовом по необходимости
(4) вызовом по событию
Связывание переменных и их значений в элементарном Лиспе реализуется через:
(1) ассоциативный список
(2) стек
(3) хэш-таблицу
Какой из результатов вычисления формы (rplacd (cdr x) (car x)) , где x – список (a b c d), является верным:
(1) (b c d a)
(2) (a b c a)
(3) (a b a)
(4) (a)
Какая из приведенных форм позволяет обратить список 'L':
(1) (defun rev(L) (prog (x y) A (cond ((Null L) (return x))) (setq y (cdr L)) (cond ((atom y) (go B))) (setq y (rev y)) B (setq x (cons y x)) (setq L (cdr L)) (go A) ) )
(2) (prog rev (L x y) A (cond ((Null L) (return x))) (setq y (cdr L)) (cond ((atom y) (go B))) (setq y (rev y)) B (setq x (cons y x)) (setq L (cdr L)) (go A) ) )
(3) (defun rev(L) (prog () A (cond ((Null L) (return x))) (set 'y (cdr L)) (cond ((atom y) (goto B))) (set'y (rev y)) B (set 'x (cons y x)) (set 'L (cdr L)) (go A) ) )
В каком году появились первые прототипы современных Лисп-систем
(1) 1950
(2) 1962
(3) 1990
Каково назначение функции Step:
(1) интерпретация своего аргумента с выводом результата выполнения команды на экран
(2) построение кода на языке ассемблер
(3) пошаговая интерпретация с выдачей результата выполнения команд на каждом шаге
Какие из данных выражений представлены списками:
(1) (1 . 2)
(2) 1
(3) (1 2)
Какое из выражений синтаксически корректно и не вызовет ошибку при интерпретации:
(1) ((lambda (x) (cons (cdr x) (car x))) '(a b c))
(2) ()defun f(x y) (cons (cdr x) (car y ))
(3) ((lambda (x) (cons (cdr 'x) (car 'x))) '(a b c))
(4) ((defun (x) (cons (cdr x)) '(a b с))
(5) (defun f (cons (cdr x) (car x )))
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение (DEFUN append (x y) (COND ((null x) y) ((QUOTE T) (CONS (CAR x) (append (CDR x) y) ) ) ) ) ,

при интерпретации выражений с указанными ниже аргументами:

(1) вызовов – 2, x – (car (A)), y – (car (1 2))
(2) вызовов – 3, x – (cons 1 2), y – (1 2 2 3)
(3) вызовов – 4, x – (car (quote (1 2))), y – (1 2 3)
Предикатом в Лиспе называют:
(1) функцию, не имеющую выходные значения
(2) функцию, имеющую выходные значения TRUE и FALSE
(3) функцию, имеющую выходные значения T и Nil
Укажите формы, с помощью которых можно удвоить каждый элемент списка:
(1) (defun F(xl) (cond (xl (cons (* 2 (car xl) ) (F (cdr xl))))))
(2) (defun F(xl) (map-el (lambda (x) (* 2 x) ) xl))
(3) (defun F(xl) (map-comp (lambda (x) (* 2 x)) xl))
Какой из результатов вычисления формы (intersection '(1 2 3) '(4 5 3)) является верным. Функция intersection имеет следующее определение: (DEFUN INTERSECTION (X Y) (COND ((NULL X) NIL) ((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) ) (T (INTERSECTION (CDR X) Y)) ))
(1) (1 2 3 4 5)
(2) (1 2 4 5)
(3) (3)
В чем заключается действие описанной в лекции операции "приостановка вычислений":
(1) вычисление формы-аргумента запоминается и откладывается для последующего возобновления
(2) отменяется вычисление формы-аргумента
(3) форма-аргумент этой функции вычисляется в соответствии с контекстом вызова
Общий принцип функционального программирования:
(1) при символьном представлении данных представление функции нельзя построить теми же средствами, что и обработку значений
(2) представление функции строится заранее
(3) представление функции строится и вычисляется также как и представление данных
Каким образом можно ввести новое свойство атома в Лисп-систему:
(1) (Setq (get 'Атом) 'свойство)
(2) (Setf (get 'Атом) 'свойство)
(3) (Setf 'Атом 'свойство)
Сообщение интерпретатора Step 3> означает:
(1) разбор подвыражения, находящегося на глубине 3 в дереве разбора
(2) номер строки после вызова функции (Step выражение)
(3) команда step была вызвана 3 раза
Вычислимо ли выражение (EQ (car '(A)) (cdr'(B))), если да, то какой ответ является верным:
(1) нет, не вычислимо
(2) да, ответ Nil
(3) да, ответ True
В каком порядке будет проходить вычисление формы ((lambda (x) (car (cons (cdr x) x))) '(1 2 3)):
(1) связывание переменной x со значением (1 2 3), вычисление головы списка, вычисление хвоста списка, соединение хвоста и остального списка, результат ((2 3) (1 2 3))
(2) построение формы (car (cons (cdr x) x)) ,подстановка в нее значения '(1 2 3) (связывание с переменной x), вычисление хвоста списка, консолидация со списком, вычисление головы итогового списка, результат (2 3)
(3) связывание переменной x со значением (1 2 3), вычисление хвоста списка, консолидация с исходным списком, вычисление головы итогового списка, результат (2 3)
Какие из представленных ниже форм является несписочным S-выражением
(1) (1 2 3)
(2) (1 . (2 . 3))
(3) (1 (2 3))
(4) 1
(5) ()
В каком случае интерпретатор выдаст сообщение об ошибке при вводе в его строку выражения > a1:
(1) когда a1 является именем функции
(2) когда a1 является именем переменной, не имеющей значения
(3) когда a1 является именем переменной, находящейся в ассоциативном списке
Каким образом в базовом Лиспе представляется строковая константа:
(1) _слово1_слово2_…_словоN
(2) " слово1 слово2 слово3"
(3) ;слово1 слово2 слово3
Какое из представленных ниже выражений содержит ошибки:
(1) (a b c d . e)
(2) (a b .( c d) e)
(3) (((a . b) . c) d . e)
Какая из формальных реализаций операции "приостановка вычислений" является верной:
(1) (eval x)
(2) 'x
(3) (defun f(x) x)
(4) (lambda () x)
Какой подход в построении программ преимущественно используется в Лисп-системах программирования:
(1) императивный
(2) объектно-ориентированный
(3) функциональный
С помощью какой функции Clisp можно посмотреть список всех свойств атома:
(1) (symbol-function )
(2) (symbol-value )
(3) (symbol-plist)
Список аргументов специальной функции Defun содержит в порядке следования:
(1) имя функции, определение функции, список аргументов, тип результата
(2) имя функции, список аргументов, определение функции
(3) имя функции, типы и имена аргументов, определение функции
Какое из значений может быть получено при вычислении формы (cdr '( a (b (c)) d)):
(1) (b (c))
(2) (d)
(3) ((b (c)) d)
Как правильно будет выглядеть эквивалент условного выражения языка Паскаль "if (a=b) then print ('a равно b') else print ('a не равно b')" на языке Лисп:
(1) (cond ((eq a b) (print "a равно b")) (T (print "a не равно b")))
(2) (cond ((= a b) (print "a равно b")) (T (print "a не равно b")))
(3) (cond ((= a b) print "a равно b") ("a не равно b"))
Какие из представленных форм является определением именованной функции в Лиспе:
(1) ((lambda (x y) (car (cons x (cdr y)))) (a b 2) (2 3))
(2) (defun f(x y z) (cons (cons x (cdr y)) z))
(3) (defun F(x) ((lambda (y) (car y)) x) )
Какие из записей выражений не эквивалентны:
(1) Nil и (quote nil)
(2) Nil и True
(3) (car a) и '(car a)
(4) (quote (Eq a)) и '(Eq a)
(5) T и Nil
Какие из приведенных ниже данных являются атомами:
(1) ("(abcd)")
(2) abcd1234567890
(3) '"abcd"
(4) "(abcd)"
(5) 12345678910111213141516117abcd
Какая из представленных ниже пар форм имеет одинаковые результаты при их вычислении:
(1) (apply (f x y)) и (funcall f x y)
(2) (apply (f x y)) и (funcall (f x y))
(3) (eval '(f 'x 'y)) и (eval '(f x y))
(4) (eval '(f x y)) и (funcall f 'x 'y)
Какая из формальных реализаций операции "возобновление вычислений" является верной:
(1) (evcon x)
(2) (defun f(x) (x))
(3) (funcall (f x)), где f(x) определено с помощью (defun f(x) (x))
(4) (apply (x ))
Формой в языке Лисп называют:
(1) список из представления функции и перечня ее аргументов
(2) список из имени функции, перечня ее аргументов и значений
(3) описание функции на языке Лисп
Укажите, какая из перечисленных ниже функций изменяет структуру существующих списков:
(1) Cons
(2) Eq
(3) rplaca
(4) Defun
Какое событие произойдет после ввода в строку интерпретатора текста (Cons 'a 'BC):
(1) сжидание продолжения ввода
(2) появится сообщение об ошибке
(3) система выдаст правильный результат вычисления данного выражения
Какой из списков правильно представляет S-выражение (точечную нотацию) ((A . (B . C) ) . (D . (E . Nil))):
(1) ((A B . C) . (D E))
(2) ((A (B C)) (D E))
(3) ((A (B C)) (D . E))
Являются ли приведенные ниже описания функции взятия второго элемента (необязательно атома) списка семантически и синтаксически верными. Указать верное описание:
(1) (defun f(x) (f (caar x)))
(2) (defun F(x) (cond (F (car x)) ((atom x) x) ))
(3) (defun F(x) (cond (((atom x) x) (T (F (car x)) )) )
В каком случае правильно указано количество обращений к последней ветви ((QUOTE T) (QUOTE NIL)) второго (вложенного) Cond функции Equal, имеющей определение (DEFUN equal (x y) (COND ((ATOM x) (COND ((ATOM y) (EQ x y)) ((QUOTE T) (QUOTE NIL)) ) ) ((equal (CAR x)(CAR y)) (equal (CDR x)(CDR y))) ((QUOTE T) (QUOTE NIL)) ) )

при интерпретации выражений с указанными ниже аргументами:

(1) обращений – 1, аргументы (1 2) и (1 0)
(2) обращений –1, аргументы (a b) и (a (d))
(3) обращений -3, аргументы (a b) и (c b)
(4) обращений – 1, аргументы (a b) и (a c)
Укажите выражения, при интерпретации которых возникнет сообщение об ошибке (Лисп элементарный):
(1) (cadr '((A) . B) )
(2) (cadr '((A) B))
(3) (car A)
(4) (Caar '((A) B C))
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным: (defun map-comp (fn al vl) (cond (al (cons (fn (car al) (car vl)) (map-comp (cdr al) (cdr vl)) ) ) ) )
(1) (map-comp #'car '(1 2 3) '(1 2 4)), результат ( 1 2 3)
(2) (map-comp #'cons '(1 2 3) '(1 (2 4))), результат ((1 . 1) (2 . 2) (3 . 4))
(3) (map-comp #'cons '(1 2 3) '(1 (2 4) )), результат ((1 . 1) (2 2 4) (3))
(4) (map-comp #'cons '(1) '(5 2)), результат (1 . (5 2))
Что означает запись (let ((a (cons x y))) a) :
(1) замена в последующих выражениях списков "x" и "y" на список "a"
(2) присваивание локальной переменной "a" результата консолидации (cons x y)
(3) замена в выражениях (аргументах Let) повторяющегося подвыражения "(cons x y)" на "a" без воздействия на результат вычисления последующих форм
В чем заключается действие описанной в лекциях функции "возобновление вычислений":
(1) аргумент этой функции вычисляется в соответствии с контекстом вызова
(2) аргумент этой функции – выражение, которое будет вычислено после вычисления остальной части выражения, в состав которого оно входит
(3) аргумент этой функции может не вычисляться
В Лиспе все типы данных:
(1) включены в представление значений, поэтому они не указываются
(2) объявляются в начале текста программы
(3) объявляются перед определением функции при описании ее аргументов
Какой из результатов вычисления формы (rplaca x (cddr x)), где x – список (a b c d), является правильным:
(1) ((с d) b c d)
(2) ((b c d) a)
(3) (b с d)
(4) (a с d)
Можно ли остановить процесс пошаговой интерпретации и если можно, то каким образом:
(1) процесс остановить нельзя (окончание после разбора последнего выражения)
(2) набором команды Error
(3) набором команды команда Next
Какие из перечисленных ниже форм вычислимы (не будет сообщения об ошибке):
(1) (caddr '(a b с))
(2) (caaadr '(a (b c)))
(3) (cdddr '(a b с))
Какая из перечисленных ниже форм может быть переменной:
(1) (Abс)
(2) Abc
(3) A(1)2
В каких случаях правильно указан результат выполнения функции member, имеющей определение (DEFUN member (x y) (COND ((null y) (QUOTE Nil)) ((equal x (CAR y)) (QUOTE T)) ((QUOTE T) (member x (CDR y)) ) ) )

при интерпретации выражений с указанными ниже аргументами:

(1) x- (A B C), y - (A B C D), результат Nil
(2) x – (A B C), y – (A B (C D)), результат Nil
(3) x – (A (B)), y – (C (B) A), результат T
(4) x – (A (B C)) y – (C A (B C) (A)), результат T
Атом, введенный в строку интерпретатора в скобках в виде "(Атом)", воспринимается им как:
(1) константа
(2) переменная
(3) функция
Какая из приведенных ниже форм не содержит ошибки:
(1) (lambda (y z) (map-el #'length (cons y z)))
(2) (map-comp #'(lambda (y)(cons y y)) '(x) '(y))
(3) (defun F(x y z) (map-comp #'* x (cons y z)))
Каким образом низкоуровневая подпрограмма может быть включена в Лисп-систему:
(1) создание низкоуровневой программы в Лисп-системе пользователем
(2) создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы
(3) создание низкоуровневой программы в другой системе и ее перенос в Лисп систему
Каким образом можно исключить повторное вычисление одного и того же рецепта:
(1) введением флага, невычисленный рецепт будет иметь вид (Nil e AL )
(2) введением флага, не вычисленный рецепт будет иметь вид (T e AL )
(3) введением флага, не вычисленный рецепт будет иметь вид (T (eval e AL ))
(4) правильного из перечисленных выше ответов нет
Что такое рекурсивная функция:
(1) это функция, имеющая несколько аргументов
(2) это функция, определение которой имеет прямое или косвенное обращение к самой себе
(3) это функция, имеющая несколько значений
Какой из результатов вычисления формы (grp '(1 2 (3))) является верным. Функция (grp x) имеет определение (defun grp (x) (list (car x) (list (cadr x) (caddr x))) )
(1) (1 2 3)
(2) (1 2 (3))
(3) ((1)(2)(3))
(4) (1 (2 (3)))
Укажите, какие из приведенных ниже строк есть комментарии в системе Лисп:
(1) ;;abv
(2) ;(abv)
(3) abv
(4) (comment abv)
Укажите правильный результат вычисления формы (Cons '(A) Nil):
(1) пара элементов (A . Nil)
(2) s-выражение ((Nil . Nil) . A)
(3) одноэлементный список ((A))
Каким будет результат вычисления формы (cons (cdr '(A B C)) (car '((D)))):
(1) ((car '(A B C)) (D))
(2) ( (B C) D)
(3) (B C (D))
В каких случаях правильно указан результат применения функции Assign, имеющей определение (DEFUN assign (x v al) (COND ((Null al) (CONS (CONS x v) Nil )) ((equal x (CAAR al))(CONS (CONS x v) (CDR al))) ((QUOTE T) (CONS (CAR al) (assign x v (CDR al)))) ))

к следующим аргументам:

(1) аргументы: x – a v – 2 al – '((a . 1) (b . 2)) Результат: ((a . 2)(b .2))
(2) аргументы: x – a v – 2 al – '((a . 1) (b . 2)) Результат: ((a . 2)(a . 1)(b . 2))
(3) аргументы: x – a v – 3 al – '((b . 1) (a . 2)) Результат: ((b . 3)(a . 2)(a . 3))
(4) аргументы: x – a v – 3 al – '((a . 2)(a . 4)(b . 2)) Результат: ((a . 2)(a . 3)(a . 4)(b . 2))
(5) аргументы: x – a v – 5 al – '((a . 1)(a . 3)) Результат: ((a . 5)(a . 3))
Что непременно делает интерпретатор до применения безымянной функции:
(1) помещает аргументы функции в ассоциативный список
(2) связывает переменные из списка параметров со значениями фактических аргументов
(3) связывает определение с аргументами функции
Какая из приведенных ниже форм содержит ошибку:
(1) (map-el '#(car '(1 2 3)) '(1 2 3) '(4 5 6))
(2) (defun f3 (xl) (map-el (lambda (x) (* x x )) 'xl))
(3) (defun f(x y) (map-el #'(lambda (x1) (/ x1 y)) x))
Какой результат будет получен при вычислении формы (cons '(car '(A B) (car '(C D)))) :
(1) (A . C)
(2) ((car '(A B)) . C)
(3) сообщение об ошибке
Динамическое управление вычислениями это:
(1) механизм обязательного выполнения команд
(2) инструмент приостановки процесса вычислений функций и возобновления вычислений по мере необходимости
(3) механизм выборочного выполнения команд
Какой из результатов вычисления формы (pgrp '(1 2 3)) является верным. Функция (pgrp x) имеет определение (defun pgrp (x) (rplacd (rplaca (cdr x) (cons (cadr x) (cddr x))) NIL))
(1) ((2 3))
(2) (1 2 3)
(3) (1 (2 (3)))
Укажите результат вычисления выражения (CONS Nil 20)
(1) (Nil)
(2) (Nil . 20)
(3) (Nil 20)
Результатом выполнения функции CONS над двумя атомами является:
(1) атом
(2) список вида (Атом1 Атом2)
(3) бинарный узел вида (Атом1 . Атом2)
Какая из данных форм вычислима:
(1) ((lambda (x y) (eq 'x 'y)) A 'A)
(2) ((lambda (z) (cons z 'x)) '(AB))
(3) ((lambda (x) (eq x 0)) (a b))
В каком случае правильно указано число вызовов функция Cons (входящей в состав определения sublis) при вызове функции sublis, имеющей определение (DEFUN sub2 (al z) (COND ((null al) z) ((equal (CAAR al) z) (CDAR al)) ((QUOTE T) (sub2 (CDR al) z)) ) ) (DEFUN sublis (al y) (COND ((ATOM y) (sub2 al y)) ((QUOTE T)(CONS (sublis al (CAR y)) (sublis al (CDR y)) ) )))

при интерпретации выражений с указанными ниже аргументами:

(1) вызовов 2, al- ((C . A) (D . B)), y – (C D)
(2) вызовов 6, al- ((C . A) (D . B)), y – (C D)
(3) вызовов 4, al- ((C . A) (D . B)), y – (C D)
Какой результат будет получен при интерпретации выражения (car (eval (cdr '(a b c))))
(1) Сообщение об ошибке
(2) (b с)
(3) b
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным: (defun map-ap (fn ll) (cond (ll (append (fn (car ll) ) (map-ap fn (cdr ll) ) ) ) ) )
(1) (map-ap #'cdr '((A B C) (A B (C))) ), результат (B C B C)
(2) (map-ap #'* '(1 2 3)), результат (1 4 9)
(3) (map-ap #'+1 '(10.0 7.0)), результат (11.0 8.0)
Какое из представленных ниже выражений содержит ошибки:
(1) (1 2 3 4 5)
(2) (1 . (2 3 . (4 5)))
(3) (((1 . 2) . (3 . 4 . 5))
Как именуются элементарные данные в Лиспе:
(1) список
(2) атом
(3) функция
(4) процедура
Какая информация содержится в элементах списка свойств атома:
(1) символьное название (1 элемент)
(2) наименование хранится в ассоциативном списке, а в списке свойств атома хранятся добавляемые пользователем свойства (нефиксированное количество элементов)
(3) наименование и значение хранится в списке свойств атома, там же хранятся добавляемые пользователем свойства (произвольное количество элементов)
Когда могут быть использованы prog-выражения:
(1) при написании функционально-ориентированых выражений
(2) при написании объектно-ориентированого кода
(3) при написании программ на Лиспе в императивном стиле
Каким образом организован доступ к результатам вычислений в Лисп-системе:
(1) результаты доступны через специальный файл Лисп-системы
(2) результаты поступают в стандартный поток вывода
(3) результаты остаются в системе
Каким образом можно посмотреть на экране результат интерпретации выражения из файла:
(1) в файле строку "выражение" заменить строкой "(print выражение)" и набрать в командной строке (load 'имяфайла)
(2) необходимо создать файл с расширением .lsp и загрузить его функцией load
(3) необходимо в файл перед строкой вида (выражение) вставить строку (eval (print(read)))
Информация в Лисп-системе представляется виде:
(1) атомов
(2) символьных выражений(s-выражения)
(3) функций
Данные какого вида и типа могут выступать в качестве аргументов функции в Лиспе:
(1) числа и строки
(2) любая форма произвольной длины и сложности
(3) только атомы
Что такое форма:
(1) это любое выражение
(2) это выражение, которое может быть вычислено
(3) это список только в точечной нотации
Интерпретацией называют:
(1) функцию, вычисляющую значения форм, соответствующих спецификации языка, с точностью до ресурса
(2) это функция, вычисляющая значения любых всевозможных форм, принадлежащих всевозможному множеству языков
(3) это функция, вычисляющая значения фиксированного множества форм (форм только с функциями элементарного Лиспа)
В чем заключается различие между аргументами (и значениями) функционалов и функций:
(1) в качестве аргументов и результатов у функций могут выступать функционалы.
(2) в качестве аргументов и результатов у функционалов могут выступать функции
(3) в качестве аргументов и результатов у функций могут выступать только определенные типы объектов, а у функционалов любые
Укажите, какие функции являются псевдо-функциями Лисп-системы:
(1) (let)
(2) (intesection)
(3) (print)
Что содержится в рецепте вычисления:
(1) только вычисляемая форма
(2) адрес вычисляемой формы
(3) отложенная форма и контекст, в котором она вызывается
Функция-это:
(1) правило, по которому одному значению аргумента ставится в соответствие несколько значений результата
(2) правило, по которому нескольким значениям аргумента ставится в соответствие несколько значений результата
(3) правило, по которому одному или нескольким значениям аргумента ставится в соответствие конкретное значение результата
Каким образом происходит сбор мусора в Lisp:
(1) происходит полное очищение всей памяти, которую использует система
(2) помечаются все свободные блоки, они и передаются под использование
(3) помечаются все занятые блоки памяти, а оставшиеся свободные отдаются под повторное использование
Какой результат будет получен при вычислении последовательности форм (set 'x 'car) (funcall x '(a b c)) :
(1) a
(2) сообщение об ошибке
(3) (car '(a b с))
(4) car
Что означает вызов файла Лисп-системы с опцией clisp.exe –o filename:
(1) указывается файл, который отправляется на компиляцию
(2) указывается файл или директория вывода результата компиляции предшествующего лисп-файла
(3) файл вывода служебной информации
Элементарными функциями в Лисп системе называют:
(1) атомы, определенные как подпрограммы на уровне исполняемого кода
(2) списки
(3) функции, имеющие область значений (T Nil)
Какие из представленных ниже форм представляют одноэлементный список в Лиспе:
(1) Nil
(2) (Nil)
(3) (NIL . NIL)
Какая из перечисленных ниже форм вычислима:
(1) (Eq (A) (B))
(2) (Atom (quote (A B C)))
(3) (Cons '(a) ;(a b c))
Какие из представленных ниже форм являются вычислимыми формами языка Лисп:
(1) (a 230 '3000), где a – функция, 1 и 2 аргументы
(2) a, где a–имя функции
(3) a, где a–переменная
(4) (cond ((Atom 'a) 1) (T 0))
В каком порядке будет вычислено выражение (car (cdr (cons x y))):
(1) сначала будут получены значения x и y, затем в порядке следования выполнены операции cons, cdr и car
(2) сначала будет выполнена операция cons, a затем в порядке следования к списку (x . y) применены cdr и car .
(3) сначала будет получен результат cons, затем в порядке следования выполнены операция car и cdr .
Какие факторы должны быть учтены при определении отображающей функции:
(1) определение структуры данных в отображаемом множестве
(2) каким образом сохранять определения функции в системе
(3) как отличить нужные конечные результаты отображающей функции от промежуточных.
Какой из результатов вычисления формы (union '(a b c) '(с a b)) будет получен (учесть порядок следования элементов итогового списка). Функция Union имеет следующее определение: (DEFUN UNION (X Y) (COND ((NULL X) Y) ((MEMBER (CAR X) Y) (UNION (CDR X) Y) ) (T (CONS (CAR X) (UNION (CDR X) Y))) )) ) ))
(1) (a b с)
(2) (с a b)
(3) (a b a b)
(4) (a с b)
В чем заключается преимущество использования ленивых вычислений:
(1) возможность использования нетипизированных переменных
(2) экономия времени за счет исключения невостребованных вычислений
(3) экономия строчек кода
Программой на языке Лисп называют:
(1) последовательность вычисляемых атомов
(2) последовательность вычисляемых выражений
(3) последовательность вычисляемых форм
Какая информация содержится в ячейке, входящей в состав древовидного списка, в котором содержаться S-выражения в памяти:
(1) атом, с адресом описательной структуры и адрес декремента
(2) список (S-выражение) с описательной структурой
(3) список, с адресом на описательную структуру и декремент
C помощью каких форм можно посчитать количество элементов 'i' в списке 'x':
(1) (defun pr(x) (prog () (setq i 0) (setq L x) (cond ((Null L) (return i))) (setq L (cdr L)) (setq i (+ i 1)) ) )
(2) (defun pr (x) (prog () (setq i 0) (setq L x) A (cond ((Null L) (return i))) (setq L (cdr L)) (setq i (+ i 1)) (go A) ) )
(3) (defun pr(x i) (cond ((Null x) i)(T (pr (cdr x) (+ i 1))) ))(defun pr0 (x) (pr x 0))
Какие известные программные продукты были реализованы с помощью Лисп-систем:
(1) система инженерных расчетов AutoCAD
(2) текстовый редактор Emacs
(3) графический редактор Photoshop
Какое событие произойдет после введения в строку интерпретатора выражения (Cons a (quote BC)):
(1) система выдаст правильный результат
(2) появится сообщение об ошибке, что переменная "a" не имеет значения
(3) появится сообщение об ошибке, что переменная "BC" не имеет значения
Какие из перечисленных представлений являются несписочным S-выражением:
(1) (Atom)
(2) (1 . 3)
(3) Atom
Что происходит при вычислении интерпретатором формы ((lambda (x) (cons x x)) 'A):
(1) в системе создается функциональный объект с именем Lambda
(2) переменная X связывается со значением A, выполняется однократное вычисление безымянной функции, строящей пару (A . A)
(3) данная форма останется доступной в системе с возможностью многократного ее вызова с различными значениями переменной X
В каких случаях правильно указано число обращений к функции Cons при вызове функции subst, имеющей определение (DEFUN subst (x y z) (COND ((equal y z) x) ((ATOM z) z) ((QUOTE T)(CONS (subst x y (CAR z)) (subst x y (CDR z)) ) ) ) ),

со следующими аргументами (порядок следования x y z):

(1) обращений – 3, аргументы x- (A B), y - (С), z - (A B D)
(2) обращений – 3, аргументы x- A, y - C, z - ((C) D)
(3) обращений – 0, аргументы x- Nil, y - A, z - (A B C)
(4) обращений – 4, аргументы x- T, y - T, z - (B A C)
Какое назначение имеет функция apply, входящая в состав интерпретатора:
(1) вычисление первой базовой функции, входящей в состав в формы
(2) вычисление вложенных функций
(3) применение функции, подаваемой в качестве параметра в apply, к ее аргументам – то и другое представлено как данные Лиспа
Какое из приведенных ниже выражений является примером правильного использования функционала map-el: (defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )
(1) (map-el caddr '(1 2 3 4))
(2) (map-el #'+ '(1 2 3 4))
(3) (map-el '+ '(1 2 3 4))
(4) (map-el #'caddr '(1 2 3 4))
Укажите, какая из приведенных ниже форм являются специальными:
(1) (defun f(x) (car x))
(2) (Atom '(x y))
(3) T
(4) nil
Откладывание представления формы с последующим ее вычислением, если понадобилось ее значение, называется:
(1) вызовом по событию
(2) вызовом по необходимости
(3) системным вызовом
(4) вызовом по ссылке
Что такое стек:
(1) это набор данных, элементы которого обрабатываются по принципу "последний пришел, последний вышел"
(2) это набор данных, элементы которого обрабатываются по принципу "первый пришел, первый вышел"
(3) это набор данных, элементы которого обрабатываются по принципу "первый пришел, последний вышел"
Какой из результатов вычисления формы (rplacd (car x) (cddr x)), где x – список (a b c d), является верным:
(1) (a с d)
(2) (a b c a)
(3) (a b a)
(4) (a)
Какая из последовательностей форм позволяет посчитать факториал от N:
(1) (defun F(N) (cond ((= N 0) 1) (T (* N (F (- N 1)))) ) )
(2) (defun F(N) (prog () (cond ((= N 0) (return 1))) (setq N (* N (F (- N 1)))) (return N) ) )
(3) (defun F(N) (prog () (cond ((= N 0) (return i))) (setq i (* N (F (- N 1)))) (return i) ) )
Чьи идеи легли в основу построения Лисп-систем:
(1) Норберт Винер
(2) Джон Мак-Карти
(3) Джон Фон Нейман
Как посмотреть результаты пошаговой интерпретации выражения (cons 1 (cons 1 2)):
(1) использовать инструкцию step, а потом инструкцию (Step (cons 1 (cons 1 2)))
(2) использовать инструкцию step после вызова (Step (cons 1 (cons 1 2)))
(3) использовать инструкцию continue после вызова функции (Step (cons 1 (cons 1 2)))
Какие из s-выражений являются списками?
(1) (Nil . 1)
(2) (1 T)
(3) T . Nil
(4) (ab123)
Какое из выражений синтаксически корректно и не вызовет ошибку при интерпретации:
(1) ((lambda (x y) (cons (cdr y) (car x))) '(a b c) '(a))
(2) ((defun f(x) (cons (cdr x) (car x )) '(a b c)))
(3) ((defun (x y) (cons (cdr x)) '(a b с))
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение (DEFUN append (x y) (COND ((null x) y) ((QUOTE T) (CONS (CAR x) (append (CDR x) y) ) ) ) ) ,

при интерпретации выражений с указанными ниже аргументами:

(1) вызовов – 2, x – (A B C), y – (1 2)
(2) вызовов – 2, x – (1 ((2))), y – (a b c)
(3) вызовов – 4, x – (a (b) c), y – (a b c d)
Предикат - это:
(1) функция, имеющая выходные значения T и Nil
(2) функция, имеющая только одно выходное значение T
(3) функция, имеющая область значений - множество комплексных чисел
Укажите формы, с помощью которых можно обнулить каждый элемент списка:
(1) (defun F(xl) (cond (T (cons (- (car xl) (car xl) ) (F (cdr xl))))))
(2) (defun F(xl) (cond ((Null xl) Nil) (T (cons (- (car xl) (car xl)) (F (cdr xl))))))
(3) (defun F(xl) (map-el (lambda (x) 0 ) xl)
Какой из результатов вычисления формы (intersection '(a b c) '(a b d)) является верным. Функция intersection имеет следующее определение: (DEFUN INTERSECTION (X Y) (COND ((NULL X) NIL) ((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) ) (T (INTERSECTION (CDR X) Y)) ))
(1) (d c)
(2) (b a)
(3) (a b)
В чем заключается действие описанной в лекции операции "приостановка вычислений":
(1) вычисления аргумента этой функции не откладывается, аргумент запоминается вместе с контекстом вызова для текущего вычисления
(2) вычисления аргумента этой функции откладывается, аргумент запоминается вместе с контекстом вызова для последующего возобновления вычислений
(3) вычисления аргумента этой функции не откладывается, аргумент вычисляется моментально.
Под термином "Самоприменимость языка программирования " понимают:
(1) описание функций языка программирования средствами этого же языка программирования
(2) описание интерпретатора средствами интерпретируемого языка
(3) описание интерпретатора языка программирования с помощью другого языка программирования
(4) описание компилятора средствами компилируемого языка
Каким образом можно ввести новое свойство атома в Лисп-систему:
(1) (Setf (get 'Атом) 'свойство)
(2) (Setf (get "Атом") свойство)
(3) (Setf "Атом" 'свойство)
Разбор выражения при интерпретации идет:
(1) сверху вниз до получения всех значений, потом построение итогового значения
(2) снизу вверх (с вложенных подвыражений)
(3) сверху вниз, результат формируется постепенно на каждом шаге, после разбора последнего подвыражения интерпретатор выдает результат
Вычислимо ли выражение (EQ (car '(())) (cdr'(T . Nil))), если да, то какой ответ является верным:
(1) нет, не вычислимо
(2) да, ответ False
(3) да, ответ T
Какая из приведенных ниже функций является рекурсивной с правильным выходом из рекурсии:
(1) (defun f (x) (f (car x)))
(2) (defun f (x) (cond ((Atom x) x)(T (f (car x)))))
(3) (defun f (lambda (x) (cond (T ( * x (f (- x 1 ))) ) ) ))
Какие из представленных ниже форм является списочным S-выражением
(1) (a . Nil)
(2) (Nil . Nil)
(3) (ab . (b1 . c2))
(4) 3 . Nil
В каком случае интерпретатор выдаст сообщение об ошибке при вводе в его строку выражения > (a ):
(1) в любом случае, т.к. (a) есть недопустимая конструкция
(2) когда a является именем функции, а не именем переменной
(3) когда a не является именем функции без параметров
Каким образом в базовом Лиспе выглядит строковая константа:
(1) "abc_def_ghi"
(2) 'abc_def_ghi
(3) " abc_def_ghi "
Какие из представленных ниже выражений содержат ошибки:
(1) (a . b c d e)
(2) (a . b .( c d e))
(3) (((a . b) . c) d e)
Какая из формальных реализаций операции "приостановка вычислений" является верной:
(1) (lambda () x)
(2) ;x
(3) (lambda (x) x)
(4) "x"
Какой стиль программирования преимущественно используется в Лисп-системах:
(1) функциональный
(2) императивный
(3) декларативный
С помощью каких функций Clisp можно посмотреть значение глобальной переменной:
(1) (symbol-function )
(2) (symbol-value )
(3) (symbol-plist)
Какие аргументы имеет специальная функция Defun (порядок следования аргументов должен быть показан правильно):
(1) имя функции, список аргументов, определение функции
(2) имя функции, определение функции, список аргументов, тип результата
(3) имя функции, определение функции, список аргументов
Какое из значений может быть получено вычислением формы (cdr '(( a b) c d)):
(1) (с d)
(2) (d)
(3) (b c d)
Как правильно будет выглядеть эквивалент условного выражения языка Паскаль"if ((a + b) = 3) then print (a) else print (b)" на языке Лисп:
(1) (cond ((= (+ a b) 3) print a) (else print b))
(2) (cond ((= (+ a b) 3) (print a)) (T (print b)))
(3) (cond (( a + b) = 3) (print a)) (T (print b)))
Какие из представленных форм является определением именованной функции в Лиспе:
(1) (defun f(x y) (car (cons x (cdr y))))
(2) ((lambda (x,y) (car (cons x (cdr y)))) '(d c) '(d e))
(3) (defun F(x,y) ((lambda (y) (car y)) x) )
Какие из записей выражений эквивалентны:
(1) (quote True) и 'True
(2) Nil и (Nil Nil)
(3) Nil и (Quote Nil)
(4) (car 'abc) и (car abc)
(5) (car 'abc) и (car (quote abc))
Какое из приведенных ниже данных является атомом:
(1) ("слово1 слово2 словоN")
(2) слово1 слово2 словоN
(3) ;"слово1 слово2 словоN"
(4) (слово1 слово2 словоN)
(5) "(слово1 слово2 словоN)"
Какая из представленных ниже пар форм дает одинаковые результаты при их вычислении:
(1) (eval f (x y)) и (apply (f x y))
(2) (eval (f x y)) и (funcall f x y)
(3) (eval '(f x y)) и (funcall f x y)
(4) (eval '(f 'x 'y)) и (funcall f x y)
Какая из формальных реализаций операции "возобновление вычислений" является верной:
(1) (x )
(2) (append x)
(3) (funcall x)
(4) (defun f(x) (x))
Под термином "форма" в языке Лисп понимается:
(1) список из идентификатора функции, ее аргументов и ее всевозможных значений
(2) программа на языке Лисп
(3) список из представления функции и перечня ее аргументов
Укажите, какая из перечисленных ниже функций изменяет структуру существующих списков:
(1) Cond
(2) rplacd
(3) lambda
(4) caddr
Какое событие произойдет после ввода в строку интерпретатора текста Cons 'a 'BC:
(1) ожидание продолжения ввода
(2) появится сообщение об ошибке
(3) система выдаст правильный результат вычисления данного выражения
Укажите эквивалентную запись точеной нотации записи списочной нотации (A B (C) D)
(1) (A . (B . (C . Nil) . D) )
(2) (A . (B . ((C . Nil)) . D) )
(3) (A . (B . ((C . Nil) . (D . Nil))))
Являются ли приведенные ниже описания функции взятия правого элемента (атома ) списка (списочной нотации) семантически и синтаксически верными. Указать верное описание:
(1) (defun f(x) (f (cdr x)))
(2) (defun F(x) (cond (F (cdr x)) ((atom x) x) ))
(3) (defun F(x) (cond ((Null (cdr x)) (car x)) (T (F (cdr x)) )) )
В каком случае правильно указано количество обращений к последней ветви ((QUOTE T) (QUOTE NIL)) второго (вложенного) Cond функции Equal, имеющей определение (DEFUN equal (x y) (COND ((ATOM x) (COND ((ATOM y) (EQ x y)) ((QUOTE T) (QUOTE NIL)) ) ) ((equal (CAR x)(CAR y)) (equal (CDR x)(CDR y))) ((QUOTE T) (QUOTE NIL)) ) )

при интерпретации выражений с указанными ниже аргументами:

(1) обращений – 1, аргументы (a1 b1) и (a1 b1)
(2) обращений –2, аргументы (a (b)) и (с d)
(3) обращений - 2, аргументы (a b) и ((c) (b))
(4) обращений – 0, аргументы (a1 b1) и (a1 c1)
Укажите выражения, при интерпретации которых возникнет сообщение об ошибке (Лисп элементарный):
(1) (cdar '((A) B) )
(2) (cddr '(A . Nil))
(3) (cddr '(A B . C))
(4) (Caaadr '(A (B C)))
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным: (defun map-comp (fn al vl) (cond (al (cons (fn (car al) (car vl)) (map-comp (cdr al) (cdr vl)) ) ) ) )
(1) (map-comp #'* '(1 2 3) '((1 2) 4)), результат ((1 2) 8)
(2) (map-comp #'/ '(1 2) '(2 2)), результат (1/2 1)
(3) (map-comp #'+ '(1 2 3) '(1 2)), результат (2 4)
(4) (map-comp #'/ '(1 2) '(2 2)), результат (0.5 .1.0)
Что означает запись (let ((a (car x)) (b (car y))) a b):
(1) замена в последующих выражениях повторяющихся подвыражений "a" и "b" на "(car x)" и "(car y)"
(2) замена в выражениях (аргументах Let) повторяющихся подвыражений "(car x)" и "(car y)" на "a" и "b"
(3) замена в последующих выражениях повторяющихся голов " x" и "y" на "a" и "b"
В чем заключается действие описанной в лекциях операции "возобновление вычислений":
(1) аргумент этой функции вычисляется с потерей значения
(2) аргумент этой функции рассматривается системой как комментарий
(3) аргумент этой функции вычисляется, она является аналогом eval
Каким образом реализуется типизация данных в Лиспе:
(1) каждый тип переменной объявляется в начале текста программы
(2) типы данных включены в представление значений
(3) каждый тип переменной указывается при описании функции в ее теле
Какой из результатов вычисления формы (rplaca (cdr x) (car x)), где x – список (a b c d), является правильным:
(1) (b c d)
(2) (b c d a)
(3) (a a)
(4) (a с d)
Процесс пошаговой интерпретации протекает до тех пор пока:
(1) не закончится пошаговая интерпретация одного из выражений
(2) не закончится пошаговая интерпретация всех выражений
(3) не будет набрана команда Next
Какие из перечисленных ниже выражений вычислимы (не будет сообщения об ошибке):
(1) (caaaaaar '(a b с))
(2) (caadr '(a (b c)))
(3) (cdar '(a (b)))
Какая из перечисленных ниже форм может быть переменной:
(1) (var A)
(2) 123A
(3) A123
В каком случае правильно указан результат выполнения функции member, имеющей определение (DEFUN member (x y) (COND ((null y) (QUOTE Nil)) ((equal x (CAR y)) (QUOTE T)) ((QUOTE T) (member x (CDR y)) ) ))

при интерпретации выражений с указанными ниже аргументами:

(1) x- ((A) B C), y - (A B C D), результат T
(2) x – (B C D), y – (A (B C D)), результат T
(3) x – ((A B)), y – (C A), результат T
(4) y – (A (B) C) y – (C (B) C A), результат T
Выражение (quote Atom) воспринимается интерпретатором как:
(1) константа
(2) переменная
(3) функция
Какая из приведенных ниже форм не содержит ошибки:
(1) (map-comp #'(lambda (x y) (* x y)) '(1 2) '(3 4))
(2) (defun F(x y) (map-el #'* (cons x (cons y y))))
(3) (map-el #'(lambda (y)(cons x y)) x))
Каким образом низкоуровневая программа может быть включена в Лисп-систему:
(1) создание низкоуровневой программы в Лисп-системе пользователем
(2) лисп система не поддерживает работу с языком Ассемблер
(3) путем трансляции Лисп-кода в код ассемблера Лисп-программы с дальнейшим использованием
Каким образом можно исключить повторное вычисление одного и того же рецепта:
(1) введением флага, вычисленный рецепт будет иметь вид (e AL )
(2) введением флага, вычисленный рецепт будет иметь вид (T e AL )
(3) введением флага, вычисленный рецепт будет иметь вид (Nil (eval e AL ))
(4) правильного из перечисленных выше ответов нет
Рекурсивной функцией называют:
(1) функцию, имеющую более чем 1 аргумент
(2) функцию, имеющей в теле своего определения обращение к любым другим функциям
(3) функцию, определение которой имеет прямое или косвенное обращение к самой себе
Какой из результатов вычисления формы (grp '(1 2 3 4)) является верным. Функция (grp x) имеет определение (defun grp (x) (list (car x) (list (cadr x) (caddr x))) )
(1) (1 2 3 4)
(2) (1 2 3)
(3) (1 (2 3))
(4) (1 (2 (3)))
Укажите, какие из приведенных ниже строк воспринимаются системой Лисп как комментарии:
(1) ;это есть комментарий
(2) (это есть комментарий)
(3) (comm это есть комментарий)
Укажите правильный результат вычисления формы (Cons '(A) '(A)):
(1) ((A) A)
(2) (A . (A))
(3) пара элементов (A . A)
Каким будет результат вычисления формы (cons (car '(A B)) '((D))):
(1) (A (D))
(2) (A . ((D . Nil) . Nil))
(3) (A D)
В каких случаях правильно указан результат применения функции Assign, имеющей описание (DEFUN assign (x v al) (COND ((Null al) (CONS (CONS x v) Nil )) ((equal x (CAAR al))(CONS (CONS x v) (CDR al))) ((QUOTE T) (CONS (CAR al) (assign x v (CDR al)))) ))

к следующим аргументам:

(1) аргументы: x – 'a v – 5 al - ( (b . 3)) Результат: ((b . 3)(a .5))
(2) аргументы: x – 'a v – 5 al - ((a . 0)) Результат: ((a . 5)(a . 0))
(3) аргументы: x – 'a v – 2 al - ((b .3) (c . 2)) Результат: ((b . 3)(c . 2))
(4) аргументы: x – 'a v – 3 al – ((a . 2)(a . 4)(a . 1)) Результат: ((a . 1)(a . 2)(a . 3)(a . 4))
(5) аргументы: x – 'a v – 2 al – ((a . 1)(a . 4)(b . 2)) Результат: ((a . 1)(a . 4) (a . 2))
Что непременно делает интерпретатор до применения функции:
(1) связывает имя функции с областью значений
(2) связывает переменные в списке параметров со значениями фактических аргументов
(3) вычисляет всевозможные значения функции (определяет область значений функции)
Отметьте, какая из приведенных ниже форм содержит ошибку:
(1) (map-comp #'car '((1)( 2)(3)) '((4) (5) (6)))
(2) (defun f(x y) (map-comp #'(lambda (x1 y1) (* (car x1) (car y1))) x y))
(3) (defun f(x y) (map-el #'(lambda (x1) (cons x1 y)) x))
Какой результат будет получен при вычислении формы (cons '(car '(A B)) '(car '(C D))) :
(1) (A . C)
(2) сообщение об ошибке
(3) ((car '(A B)) . (car '(B C)))
Под динамическим управлением вычислениями понимают:
(1) механизм последовательного выполнения команд
(2) блокировку вычислений и их откладывание до явного возобновления
(3) императивную организацию процессов вычислений
Какой из результатов вычисления формы (pgrp '(1 2 3 4)) является верным. Функция (pgrp x) имеет определение (defun pgrp (x) (rplacd (rplaca (cdr x) (cons (cadr x) (cddr x))) NIL))
(1) (1 (2 3 4))
(2) (1 2 3 4)
(3) ((2 3 4))
Укажите результат вычисления выражения (CONS 20 'abc)
(1) сообщение об ошибке, т.к. число и атом не могут образовать пару
(2) (abc . 20)
(3) (20 . abc)
Результатом выполнения функции CDR над списком является:
(1) последний элемент списка, элемент может быть списком
(2) первый элемент списка, элемент может быть списком
(3) элемент с номером, которые подается в качестве второго аргумента в виде числа
(4) часть списка без первого элемента (списка или атома)
Какая из данных форм вычислима:
(1) ((lambda (x) (atom 'x)) 1)
(2) ((lambda (z) (cons z x)) '(A) 'B))
(3) ((lambda (x y) (cons x 'a)) '(a b))
В каком случае правильно указано число вызовов функция Cons (входящей в состав определения sublis) при вызове функции sublis, имеющей определение (DEFUN sub2 (al z) (COND ((null al) z) ((equal (CAAR al) z) (CDAR al)) ((QUOTE T) (sub2 (CDR al) z)) ) ) (DEFUN sublis (al y) (COND ((ATOM y) (sub2 al y)) ((QUOTE T)(CONS (sublis al (CAR y)) (sublis al (CDR y)) ) )))

при интерпретации выражений с указанными ниже аргументами:

(1) вызовов 5, al- ((A .1) (B . 2)), y – (C . 3)
(2) вызовов 1, al- ((A .1) (B . 2)), y – (C . 3)
(3) вызовов 0, al- ((A .1) (B . 2)), y – (C . 3)
Какой результат будет получен при интерпретации выражения (cddr (eval '(cdr '(a b c))))
(1) Сообщение об ошибке
(2) (b с)
(3) b
(4) Nil
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным: (defun map-ap (fn ll) (cond (ll (append (fn (car ll) ) (map-ap fn (cdr ll) ) ) ) ) )
(1) (map-ap #'cdr '((A B C)) ), результат (B C)
(2) (map-ap #'cdr '(1 2 3)), результат ((2 3) (3) nil)
(3) (map-ap #'car '(10.0 7.0)), результат (nil nil)
Какие из представленных ниже выражений содержат ошибки:
(1) (1 2 3 . 4 5 )
(2) (1 2 3 4 . (5))
(3) (((1 . nil) . nil) 3 4 5)
Из чего должны состоять списки в Лиспе:
(1) только из атомов
(2) из атомов и вложенных списков
(3) из объектов любой природы, воспринимаемых системой
(4) из рекурсивных определений
Какая информация содержится в элементах списка свойств атома:
(1) наименование и значение атома, а также любое количество дополнительных свойств, добавленных пользователем
(2) указатели на содержащиеся в памяти атомы, хранящиеся в одном списке (в системе один список свойств атомов)
(3) указатель на содержащийся в памяти атом, и другие свойства, добавленные пользователем
Каким образом можно установить значение 1 глобальной переменной a:
(1) (Let a 1)
(2) (set a 1)
(3) (setq a 1)
Какие типы функций лежат в основе элементарного Лиспа:
(1) рекурсивные функции
(2) функционалы
(3) предикаты
Каким образом можно загрузить программу из файла в Лисп-интерпретатор:
(1) необходимо создать файл с расширением .lsp, без дополнительной настройки ОС сама воспримет его как файл с программой
(2) после загрузки Лисп-системы набрать в командной строке выражение (load 'filename)
(3) загрузка программы осуществляется с помощью команды (eval (read 'filename))
Что такое список:
(1) последовательность атомов, разделенных запятыми, заключенная в скобки
(2) последовательность любых данных - списков и атомов, а также S-выражений, разделенных пробелами, заключенная в скобки
(3) последовательность строк, заключенных в скобки
Передача интерпретатору формы (f 'x 3) означает то, что:
(1) вызывается функция f для двух аргументов 'x и 3, данные " x " и "3" подаются в функцию в качестве значений аргументов
(2) вызывается функция f, аргументом которой является результат вызова функции x с аргументом 3
(3) это форма блокирована для вычисления
Для чего используется ассоциативный список в базовом Лиспе:
(1) для хранения списка свойств атома
(2) для связывания идентификатора (имени функции и переменной) со значением (определением)
(3) для хранения списка аргументов функций
Что такое интерпретация:
(1) это функция, вычисляющую значения любых всевозможных форм
(2) это функция, вычисляющая значения некоторого фиксированного множества форм
(3) это функция, вычисляющая значения всевозможных форм, определенных согласно спецификации языка, с точностью до ресурса
Что такое функционал:
(1) это функция, в качестве аргументов которой могут выступать любые формы
(2) это функция, в качестве аргументов которой могут выступать значения других функций, вычисленных ранее
(3) это функция, аргументом или результатом которой может выступать другая функция
Что такое псевдо-функция:
(1) это функция, которая выполняется ради воздействия на систему
(2) это функция, которая выполняется ради получения значений
(3) это функция, в качестве аргументов которой могут выступать другие функции
Что означает термин "рецепт вычисления выражений":
(1) рецепт - это ссылка на обыкновенную вложенную функцию
(2) рецепт – это ссылка на существующую форму и связанный с ее исполнением ассоциативный список
(3) рецепт – это ссылка на параллельный процесс
Функцию можно задать:
(1) процедурой
(2) алгоритмом
(3) неформализованным текстом
Каким образом происходит сбор мусора в Lisp:
(1) помечаются все занятые блоки памяти, а оставшиеся свободные отдаются под повторное использование
(2) память не очищается во время работы системы
(3) помечаются все свободные блоки, они и передаются под использование
Какой результат будет получен при вычислении последовательности форм (set 'x 'y) (set x 'z) (setq z 5) (list x y z) :
(1) (x y z 5)
(2) (x y z)
(3) (5 x y)
(4) (y z 5)
Что означает вызов файла Лисп-сисетмы с опцией clisp.exe @file.par
(1) аргументом для вызова лисп-системы является строка file.par
(2) аргументами для вызова лисп-системы является строки файла file.par
(3) немедленную остановку системы после вызова
Элементарные функции в Лисп системе это:
(1) атомы, определенные как подпрограммы на уровне исполняемого кода
(2) обычные атомы
(3) встраиваемые S-выражения, имеющие определения на уровне исполнимого кода
Какие из представленных ниже форм представляют одноэлементный список в Лиспе:
(1) (Атом . Nil)
(2) (Atom)
(3) Atom
Какая из перечисленных ниже форм вычислима:
(1) (Cons (Quote (A B С)) 'B)
(2) (Atom Cons (Quote A B C))
(3) (Eq 'A B)
Какие из представленных ниже форм являются вычислимыми формами языка Лисп:
(1) (1 2 3)
(2) (a b c), где a – функция, b и c переменные
(3) a, где a – имя функции
(4) a, где a –переменная
(5) (quote a)
В каком порядке будет вычислено выражение (f (cdr x)), где f – функция (defun f (y) (car y)):
(1) сначала будет поиск определения функции f в системе, получено значение переменной x, затем вычислена функция (cdr x) и (car y)
(2) сначала будет поиск определения функции f в системе, затем получено значение (cdr x) и вычислена функция (car x)
(3) сначала будет получено значение переменной и вычислена форма (cdr x), затем поиск определения функции f в системе, связь результата (cdr x) с именем локальной переменной y и вычисление (car y)
Какие факторы должны быть учтены при определении отображающей функции:
(1) структура данных в отображаемом множестве
(2) метод, с помощью которого вычисляется итоговое значение результата
(3) каким языком воспользоваться для написания этой функции
Какой из результатов будет получен при вычисления формы (union '(a b c) '(1 a a)), функция union имеет следующее определение: (DEFUN UNION (X Y) (COND ((NULL X) Y) ((MEMBER (CAR X) Y) (UNION (CDR X) Y) ) (T (CONS (CAR X) (UNION (CDR X) Y))) )) ) ))
(1) (1 a b c)
(2) (с a a b 1)
(3) (b с 1 a a)
(4) (a с b 1)
В чем заключается преимущество использования ленивых вычислений:
(1) экономия памяти
(2) экономия времени за счет исключения невостребованных вычислений
(3) экономия строчек кода
Программа на языке Лисп это:
(1) последовательность вычисляемых выражений
(2) последовательность данных любой природы
(3) последовательность вычисляемых форм
Какая информация содержится в ячейке, входящей в состав древовидного списка, в котором содержаться S-выражения в памяти:
(1) список (S-выражение) с описательной структурой
(2) атом, с адресом описательной структуры и адрес декремента
(3) имя атома и список свойств этого атома
Какая из приведенных ниже форм позволяет находить максимальный элемент 'i' списка 'L':
(1) (prog maxm (i L) (setq i 0) (setq L x) A (cond ((Null L) (return i)) ) (cond ((> (car L) i) (setq i (car L))) ) (setq L (cdr L)) (go A) )
(2) (defun maxm (x) ( prog (i L) (setq i 0) (setq L x) A (cond ((Null L) (return i)) ) (cond ((> (car L) i) (setq i (car L))) ) (setq L (cdr L)) (go A) ) )
(3) (defun maxm (x) ( prog (i L) A (cond ((Null L) (return i)) ) (cond ((> (car L) i) (set i (car L))) ) (set L (cdr L)) (Loop A) ) )
Какие известные программные продукты были реализованы с помощью Лисп-систем:
(1) текстовый редактор Notepad
(2) графический редактор Photoshop
(3) текстовый редактор Emacs
Знак апострофа ' перед атомом означает
(1) блокировку вычислений выражения, расположенного сразу за апострофом
(2) выражение за апострофом будет предварительно вычислено
(3) знак комментария
Какие из перечисленных представлений не являются списками:
(1) Lisp
(2) (Lisp)
(3) ('Lisp)
(4) (Lisp . Lisp)
Что происходит при вычислении формы (defun f(x)(cons x x)):
(1) имя функции f связывается с ее определением, и будет доступно далее при работе с интерпретатором
(2) имя функции f связывается с ее определением и будет доступно только один раз после вычисления указанной формы
(3) имя функции f связывается с ее определением, но данная форма не вычислима, т.к. не указано значение переменной x
В каких случаях правильно указано число обращений к функции Cons при вызове функции subst, имеющей определение (DEFUN subst (x y z) (COND ((equal y z) x) ((ATOM z) z) ((QUOTE T)(CONS (subst x y (CAR z)) (subst x y (CDR z)) ) ) ) ),

со следующими аргументами (порядок следования x y z):

(1) обращений – 3, аргументы x- (A B), y - (С D), z - (A B C D)
(2) обращений – 1, аргументы x- A, y - B, z - C
(3) обращений – 1, аргументы x- (1 2), y - A, z - (A B C)
(4) обращений – 4, аргументы x- (1 2), y - A, z - (B A C D)
Какое назначение имеет функция apply, входящая в состав интерпретатора:
(1) вычисление выражений вида (quote ..) и '….
(2) применение функции, подаваемой в качестве параметра в apply, к ее аргументам – то и другое представлено как данные Лиспа
(3) функция вычисления условных форм или ветвлений
Какой из результатов вызова функционала map-el, аргументами которого выступают следующие функции и списки, является правильным: (defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )
(1) (map-el #'car '(1 (2) 3)), результат - (1)
(2) (map-el #'car '(1 (2) 3)), результат - (1 2)
(3) (map-el #'cdr '(1 (2) 3)), результат - (2)
(4) (map-el #'car '((1) (2 3))), результат - (1 2)
(5) (map-el #'length '(1 (2) 3)), результат - (1 2)
Укажите, какая из приведенных ниже форм является специальной:
(1) (cond ((Eq x y) (print x)) (T (print y)) )
(2) (Eq (x y))
(3) (eval '(car x))
(4) nil
Сохранение и последующий вызов функции называется:
(1) вызовом по необходимости
(2) вызовом по значению
(3) вызовом по ссылке
(4) вызовом по имени
Пары "переменная-значение" в элементарном Лиспе содержатся в:
(1) базе данных переменных (группа временных файлов)
(2) хэш-таблице
(3) ассоциативном списке
Какой из результатов вычисления формы (rplacd (cddr x) (car x)), где x – список (a b c d), является верным:
(1) (b c d a)
(2) (a b c a)
(3) (a b a)
(4) (a)
Какая из представленных ниже форм эквивалентна подпрограмме на языке Pascal Function convert (l: list): integer; // L- список Begin for i:=0 to endoflist do //endoflist – количество элементов списка – 1. begin if List(L[i] ) then convert(L[i]) else L[i]:=L[i]+5; //если элемент является списком то вызываем для него функцию convert; end; End; :
(1) (defun convert(L) (cond ((Null L) Nil) (T (cond ((Atom (car L)) (cons (+ (car L) 5) (convert (cdr L))) ) (T (cons (convert (car L)) (convert (cdr L)))) ) ) ) )
(2) (defun convert(L) (prog () (cond ((Null L) Nil) (T (cond ((Atom (car L)) (cons (+ (car L) 5) (convert (cdr L))) ) (T (cons (convert (car L)) (convert (cdr L)))) ) ) ) ) )
(3) (prog convert (L) (cond ((Null L) Nil) (T (cond ((Atom (car L)) (cons (+ (car L) 5) (convert (cdr L))) ) (T (cons (convert (car L)) (convert (cdr L)))) ) ) ) )
Какие из современных языков программирования унаследовали идеи языка Лисп:
(1) Delphi
(2) C #
(3) Python
(4) Haskell
Сообщение интерпретатора Step ---> (выражение) означает:
(1) следующее выражение является результатом, который будет использоваться при следующих вызовах команды step
(2) данное выражение является значением и вычисляться не будет
(3) на следующем шаге будет вычислено именно это выражение
Какие из данных выражений представлены списками:
(1) (())
(2) (Nil . Nil)
(3) A
(4) ('A 'B)
Какое из выражений синтаксически корректно и не вызовет ошибку при интерпретации:
(1) ((defun (x , y) (cons (cdr x) y))
(2) ((lambda (x) (cons (cdr x) (car x))) '(a b c))
(3) (defun f(x) (atom (car x )))
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение (DEFUN append (x y) (COND ((null x) y) ((QUOTE T) (CONS (CAR x) (append (CDR x) y) ) ) ) ) ,

при интерпретации выражений с указанными ниже аргументами:

(1) вызовов – 3, x – (cons A B), y – (car (1 2))
(2) вызовов – 4, x – (cons 1 2), y – (2)
(3) вызовов – 2, x – (cons (1 2)), y – (a b c d)
Роль предиката в Лиспе может выполнить:
(1) любая вычислимая функция
(2) функция, имеющая область значений - множество комплексных чисел
(3) функция, имеющая выходные значения T и Nil
Укажите формы, с помощью которых можно посчитать квадрат каждого элемента списка:
(1) (defun F(xl) (cond (xl (cons (* (car xl) (car xl) ) (F (cdr xl))))))
(2) (defun F(xl) (cond ( (T (cons (* (car xl) (car xl)) (F (cdr xl))))))
(3) (defun F(xl) (map-el (lambda (x) (* x x)) xl))
Какой из результатов вычисления формы (intersection '(a b c) '(с a b)) является верным. Функция intersection имеет следующее определение: (DEFUN INTERSECTION (X Y) (COND ((NULL X) NIL) ((MEMBER (CAR X) Y) (CONS (CAR X) (INTERSECTION (CDR X) Y)) ) (T (INTERSECTION (CDR X) Y)) ))
(1) (a b с)
(2) (с a b)
(3) Nil
В чем заключается действие описанной в лекции операции "приостановка вычислений":
(1) аргумент этой функции не вычисляется
(2) аргумент этой функции вычисляется
(3) аргумент этой функции запоминается для последующего вычисления (вычисление откладывается)
Общим принципом функционального программирования является:
(1) принцип модульности в построении программ
(2) принцип представления функции с ее вычислением по мере обработки данных
(3) принцип статического определения и построения функций с регулярной структурой управления действиями (структурное программирование)
Каким образом можно ввести новое свойство атома в Лисп-систему:
(1) (Setq (get Атом) 'свойство)
(2) (Setq Атом 'свойство)
(3) (Setf (get 'Атом) 'свойство)
Из каких файлов состоит базовый комплект системы GNU Lisp:
(1) из файла Lisp.exe, в котором содержатся все функции
(2) из файла СLisp.bat, в котором содержатся все функции
(3) из lisp.exe –интерпретатора и lispinit.mem – базы встроенных функций интерпретатора
Какой из результатов может быть получен при вычислении формы (eq '(Nil) (atom '(T))), и укажите причину, почему это так:
(1) сообщение об ошибке, т.к. '(nil) это список
(2) T, т.к. предикат atom выдаст значении Nil
(3) T, т.к. '(Nil) и '(T) являются атомами
(4) Nil, т.к. форма (eq '(Nil) (atom '(T))) сведется к вычислению (eq '(Nil) Nil)
(5) Nil, т.к. форма сведется к вычислению (EQ Nil T)
Какая из последовательностей действий на первом шаге рекурсии, выполняемых интерпретатором при вычислении выражения (Факториал 1) , где факториал: (DEFUN Факториал (LAMBDA (N) (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) ) ) )

является верной:

(1) выбор определения функции { (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) }, выделение параметров {n = 1}, немедленный выбор второй ветви cond {(T ( * N (Факториал (- N 1 ))) ) }, вычисление этого предиката и переход ко второму шагу рекурсии
(2) выбор определения функции { (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) }, выделение параметров {n = 1}, перебор предикатов, вычитание единицы {N=N-1} , вычисление первого предиката {((= N 0 ) 1 ), ответ 1}.
(3) выбор определения функции { (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) }, выделение параметров {n = 1}, перебор предикатов, выбор первой ветви {((= N 0 ) 1 )} , вычисление функции =, вычисление предиката (Nil 1), т.е. переход ко второй ветви, выбор второй ветви cond {(T ( * N (Факториал (- N 1 ))) ) }, вычисление этого предиката и переход ко второму шагу рекурсии
Какие из представленных ниже форм является несписочным S-выражением
(1) (a b c)
(2) (a . (b с))
(3) (a . (b . c))
(4) atom
(5) a . Nil
(6) ()
В каком случае интерпретатор не выдаст сообщение об ошибке при вводе в его строку выражения > abcdefg:
(1) в любом случае, т.к. идентификатор не может быть больше 5 символов
(2) когда abcdefg является именем переменной, не находящейся в ассоциативном списке
(3) когда abcdefg является именем переменной, находящейся в ассоциативном списке
Каким образом в базовом Лиспе изображается строковая константа:
(1) "строка
(2) 'строка
(3) "строка"
Какие из представленных ниже выражений содержат ошибки:
(1) (a b c d e . nil)
(2) (a b ( c d . e))
(3) (((a . b) . c) d e)
Какая из формальных реализаций операции "приостановка вычислений" является верной:
(1) (quote x)
(2) 'x
(3) (lambda () x)
(4) (defun f(x) x)
Какой подход в построении программ наиболее подходит для использования в Лисп-системах программирования:
(1) интерфейсный
(2) функциональный
(3) декларативный
С помощью какой функции Clisp можно посмотреть определение функции в списке свойств атома:
(1) (symbol-function )
(2) (symbol-value )
(3) (function-symbol)
Аргументы функции Defun в порядке следования это:
(1) имя функции, определение функции
(2) имя функции, определение функции, список аргументов
(3) имя функции, список аргументов, определение функции
Какое из значений можно получить, вычислив форму (cdr '( a (b c) d)):
(1) (b c)
(2) (a b c d)
(3) ((b c) d)
Как правильно будет выглядеть эквивалент условного выражения языка Паскаль "if (a>b) then print (a) else print (b)" на языке Лисп:
(1) (cond ((> a b) print a) (else print b))
(2) (cond ((> a b) (print a)) (T (print b)))
(3) (cond ((< a b) (print a)) ((> a b) (print b)))
Какие из представленных форм является определением именованной функции в Лиспе:
(1) (defun (x,y) (car (cons x (cdr y))))
(2) ((lambda (x y) (car (cons x (cdr y)))) '(1 2) '(2 3))
(3) (defun F(x) ((lambda (y) (car y)) x) )
Какие из записей выражений эквивалентны:
(1) T и 'T
(2) Nil и False
(3) Nil и (Quote Nil)
(4) (Eq) и '(Eq)
(5) T и True
Какие из приведенных ниже данных являются атомами:
(1) ("(abcd)")
(2) "abcd"
(3) (abcd)
(4) 12345678910111213141516117
Какая из представленных ниже пар форм имеет одинаковые результаты при их вычислении:
(1) (append f (x y)) и (funcall f (x y))
(2) (apply f (x y)) и (funcall f x y)
(3) (eval f (x y)) и (funcall f x y)
(4) (eval '(f x y)) и (funcall f x y) при учете, того, что (defun f(x y) (cons x y)) был вызван ранее
Какая из формальных реализаций операции "возобновление вычислений" является верной:
(1) (x )
(2) (eval x AL), где AL-ассоциативный список
(3) (lambda (x) (x) x)
(4) (defun f(x) (x))
Что такое "форма" в контексте языка "Лисп":
(1) список, состоящий из представления функции и всех ее аргументов
(2) список из имени функции, перечня ее аргументов и значений
(3) представление функции на языке Лисп
Укажите, какая из перечисленных ниже функций изменяет структуру существующих списков:
(1) Cons
(2) Eq
(3) cdr
(4) rplacd
Какое событие произойдет после ввода в строку интерпретатора текста (Cons 'a 'BC:
(1) ожидание продолжения ввода
(2) появится сообщение об ошибке
(3) система выдаст правильный результат вычисления данного выражения
Являются ли эквивалентными записи точечной и списочной нотаций (A . B . C) и (A B C) соответственно:
(1) да
(2) нет, эквивалентными является записи (A . B . C) и (A (B C))
(3) нет, эквивалентными является записи (A . (B . C)) и (A B C)
(4) нет, эквивалентными являются записи (A . (B . (C . Nil))) и (A B C)
Являются ли приведенные ниже описания функции взятия левого элемента списка семантически и синтаксически верными. Указать верное описание:
(1) (defun f(x) (f (car x)))
(2) (defun F(x) (cond (F (car x)) ((atom x) x) ))
(3) (defun F(x) (cond (((atom x) x) (T (F (car x)) )) )
В каком случае правильно указано количество обращений к последней ветви второго (вложенного) Cond функции Equal, имеющей определение (DEFUN equal (x y) (COND ((ATOM x) (COND ((ATOM y) (EQ x y)) ((QUOTE T) (QUOTE NIL)) ) ) ((equal (CAR x)(CAR y)) (equal (CDR x)(CDR y))) ((QUOTE T) (QUOTE NIL)) ) )

при интерпретации выражений с указанными ниже аргументами:

(1) обращений – 0, аргументы (a b) и (c d)
(2) обращений –0, аргументы (a (b)) и (с d)
(3) обращений -3, аргументы (a b) и (c b)
(4) обращений – 1, аргументы (a b) и (a c)
Укажите выражение, при интерпретации которого возникнет сообщение об ошибке (Лисп элементарный):
(1) (caar '((A) B) )
(2) (car '(A))
(3) (car 'A)
(4) (Caar '(A B C))
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным: (defun map-comp (funcall fn al vl) (cond (al (cons (fn (car al) (car vl)) (map-comp (cdr al) (cdr vl)) ) ) ) )
(1) (map-comp #'car '(1 2 3) '((1 2) 4)), результат ( 1 (1 2))
(2) (map-comp #'cdr '(A B C) '(A B (C))), результат (B (C))
(3) (map-comp #'* '(1 2 (3)) '(2 3 5)), результат (2 6 8)
(4) (map-comp #'/ '(10.0 7.0) '(5 2)), результат (2 3.5)
В каких случаях можно использовать инструкцию Let :
(1) вынос из определения совпадающих подвыражений
(2) задание глобальной переменной значения
(3) вывод на экран результата выполнения функции, идущей в качестве аргумента Let
В чем заключается действие операции "возобновление вычислений":
(1) аргумент этой функции не вычисляется
(2) аргумент этой функции вычисляется после отложения вычисления (вычисляется с контекстом вызова)
(3) аргумент этой функции вычисляется, она является аналогом eval
В Лиспе все типы данных:
(1) необходимо объявлять в начале текста программы
(2) необходимо указывать при описании функции
(3) включены в представление значений
Какой из результатов вычисления формы (rplaca '(e f) (car x)), где x – список (a b c d), является верным:
(1) (a e f)
(2) (a b c d e f)
(3) (a f)
(4) (a b c d)
(5) (a d e)
Процесс пошаговой интерпретации продолжается пока:
(1) не закончится пошаговая интерпретация одного из выражений
(2) не закончится пошаговая интерпретация всех выражений или не будет набрана команда Next
(3) пока не будет набрана команда Break.
Каким образом можно получить элемент 'e списка ((a b cd) ((e f) g)):
(1) (cadr 'выражение)
(2) (caddr выражение)
(3) (caaadr 'выражение)
(4) (cdr (cdr (car (выражение))))
(5) (car (car (car (cdr 'выражение))))
Какая из перечисленных ниже форм может быть переменной:
(1) (A)
(2) 'A
(3) Adcdefj
В каких случаях правильно указан результат выполнения функции member, имеющей определение (DEFUN member (x y) (COND ((null y) (QUOTE Nil)) ((equal x (CAR y)) (QUOTE T)) ((QUOTE T) (member x (CDR y)) ))

при интерпретации выражений с указанными ниже аргументами:

(1) x- (A B C), y - (A B C D), результат T
(2) x – (A B C), y – (A B (C D)), результат T
(3) x – (A (B)), y – (C (B) A), результат Nil
(4) y – (A (B) C) y – (C A (B) C A), результат T
Атом, введенный в строку без скобок, интерпретатор воспринимает как:
(1) константу
(2) переменную
(3) функцию
Какая из приведенных ниже форм не содержит ошибки:
(1) (lambda (x y z) (map-el #'length (cons x (cons y z))))
(2) (defun F(x y z) (map-el #'* (cons x (cons y z))))
(3) (map-el #'(lambda (y)(cons y y)) '(x))
Каким образом низкоуровневая программа может быть включена в Лисп-систему:
(1) никаким
(2) создание низкоуровневой программы в Лисп-системе пользователем
(3) создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы
Каким образом можно исключить повторное вычисление одного и того же рецепта:
(1) введением флага, вычисленный рецепт будет иметь вид (Nil e AL )
(2) введением флага, вычисленный рецепт будет иметь вид (T e AL )
(3) введением флага, вычисленный рецепт будет иметь вид (T (eval e AL ))
(4) правильного из перечисленных выше ответов нет
Рекурсивной функцией называют:
(1) функцию, имеющую только 1 аргумент и одно единственное значение
(2) функцию, имеющей в теле своего определения обращение к любым другим функциям.
(3) функцию, имеющей в теле своего определения прямое или косвенное обращение к самой себе
Какой из результатов вычисления формы (grp '((1 2) 3)) является верным. Функция (grp x) имеет определение (defun grp (x) (list (car x) (list (cadr x) (caddr x))) )
(1) ((1 2) 3)
(2) ((1 2) (3 nil))
(3) ((1)(2)(3)(nil))
(4) (1 (2 (3)))
Какие из приведенных ниже строк являются комментариями в системе Лисп:
(1) (bye комментарий)
(2) (comment комментарий)
(3) ; комментарий
(4) 'комментарий
Укажите правильный результат вычисления формы (Cons 'Nil '(A)):
(1) (Nil . (Nil . A))
(2) (Nil A)
(3) пара элементов (A . Nil)
(4) (Nil . A)
Что получится в результате вычисления формы (cons (car '(A B C)) 'D):
(1) ((car '(A B C)) D)
(2) (A D)
(3) ((A) D)
(4) (A . D)
В каких случаях правильно указан результат применения функции Assign, имеющей описание (DEFUN assign (x v al) (COND ((Null al) (CONS (CONS x v) Nil )) ((equal x (CAAR al))(CONS (CONS x v) (CDR al))) ((QUOTE T) (CONS (CAR al) (assign x v (CDR al)))) ))

к следующим аргументам:

(1) аргументы: x – 'a v – 2 al - ((a .4) (b . 3)) Результат: ((b . 3)(a .2))
(2) аргументы: x – 'a v – 2 al - ((a .4) (b . 3)) Результат: ((a . 2)(b . 3))
(3) аргументы: x – 'a v – 3 al - ((b .3) (c . 2)) Результат: ((b . 3)(c . 2)(a . 3))
(4) аргументы: x – 'a v – 3 al – ((a . 2)(a . 4)(b . 2)) Результат: ((a . 2)(a . 3)(a . 4)(b . 2))
(5) аргументы: x – 'a v – 3 al – ((a . 2)(a . 4)(b . 2)) Результат: ((a . 3)(a . 4)(b . 2))
Что непременно делает интерпретатор до применения функции:
(1) связывает переменные из лямбда-списка параметров со значениями фактических аргументов
(2) связывает имя функции с ее аргументами
(3) вычисляет значение функции
Укажите форму, содержащую ошибку:
(1) (map-comp '#(car '(1 2 3)) '(1 2 3) '(4 5 6))
(2) (defun f3 (xl) (map-el (lambda (x)(+ 10 (* x x x))) xl))
(3) (defun f(x y) (map-el (lambda (x1 y1) (/ (car x1) (car y1)))))
(4) (defun f(x y) (map-el (lambda (x y) (+ (car x) (car y)) x y)))
Какой результат будет получен при вычислении формы (funcall (cons 'car '('(C D)))):
(1) C
(2) (car '(C D))
(3) сообщение б ошибке
Динамическое управление вычислениями может быть реализовано:
(1) средствами блокировки вычисления функции и откладывания контекста вызова функции для возобновления вычислений
(2) механизмом последовательного выполнения команд
(3) возможностью императивной организации вычислений
Какой из результатов вычисления формы (pgrp '((1 2) 3 4)) является верным. Функция (pgrp x) имеет определение (defun pgrp (x) (rplacd (rplaca (cdr x) (cons (cadr x) (cddr x))) NIL))
(1) ((1 2) (3 4))
(2) ((1 2))
(3) (( 3 4))
Какой результат будет получен при вычислении выражения (CONS 10 12)
(1) сообщение об ошибке, ведь надо поставить перед 10 и 12 знак апострофа
(2) (10 . 12)
(3) (22)
Результатом выполнения функции СAR над списком является:
(1) последний элемент списка, элемент может быть списком
(2) первый элемент списка, элемент может быть списком
(3) элемент с номером, которые подается в качестве второго аргумента в виде числа
Какая из данных форм вычислима:
(1) ((lambda (x y) (eq 'x 'y)) 'A 'A)
(2) ((lambda (z) (cons z 'x)) (AB))
(3) ((lambda (x y) (cons x 'a)) '(a b))
В каком случае правильно указано число вызовов функция Cons (входящей в состав определения sublis) при вызове функции sublis, имеющей определение (DEFUN sub2 (al z) (COND ((null al) z) ((equal (CAAR al) z) (CDAR al)) ((QUOTE T) (sub2 (CDR al) z)) ) ) (DEFUN sublis (al y) (COND ((ATOM y) (sub2 al y)) ((QUOTE T)(CONS (sublis al (CAR y)) (sublis al (CDR y)) ) )))

при интерпретации выражений с указанными ниже аргументами:

(1) вызовов 5, al- ((C A) (D B)), y – (C и D сидели на трубе)
(2) вызовов 7, al- ((C A) (D B)), y – (C и D сидели на трубе)
(3) вызовов 6, al- ((C A) (D B)), y – (C и D сидели на трубе)
Какой результат будет получен при интерпретации выражения (cadr (eval '(cdr '(a b c))))
(1) Сообщение об ошибке
(2) (b с)
(3) (a)
(4) c
(5) (c)
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным: (defun map-ap (fn ll) (cond (ll (append (fn (car ll) ) (map-ap fn (cdr ll) ) ) ) ) )
(1) (map-ap #'cdr '((A B C) (A B (C))) ), результат (B C B (C))
(2) (map-ap #'* '(1 2 3)), результат (1 4 9)
(3) (map-ap #'+ '(10.0 7.0)), результат (11.0 8.0)
Какие из представленных ниже выражений содержат ошибки:
(1) ((1) (2) (3 4) . (5))
(2) (1 2 3 . (4 . nil) 5)
(3) ((1 . nil) (2. nil) (3 . nil) (4 . nil) (5 . nil) . nil)