Ответы на курс: Введение в программирование на Лиспе
Какая из перечисленных ниже форм вычислима:
|
(Cons (Quote (A B С)) ‘B) |
|
(Atom Cons (Quote A B C)) |
|
(Eq ‘A B) |
Какая из данных форм вычислима:
|
((lambda (x y) (cons x ‘a)) ‘(a b)) |
|
((lambda (x y) (eq ‘x ‘y)) ‘A ‘A) |
|
((lambda (z) (cons z ‘x)) (AB)) |
Программа на языке Лисп это:
|
последовательность вычисляемых списков |
|
последовательность вычисляемых идентификаторов |
|
последовательность вычисляемых выражений |
Пары «переменная-значение» в элементарном Лиспе содержатся в:
|
базе данных переменных (группа временных файлов) |
|
ассоциативном списке |
|
хэш-таблице |
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение
(DEFUN append (x y) (COND
((null x) y)
((QUOTE T) (CONS
(CAR x)
(append (CDR x) y)
)
)
)
) ,
при интерпретации выражений с указанными ниже аргументами:
|
вызовов – 2, x – (1 ((2))), y – (a b c) |
|
вызовов – 2, x – (A B C), y – (1 2) |
|
вызовов – 4, x – (a (b) c), y – (a b c d) |
Как именуются элементарные данные в Лиспе:
|
список |
|
функция |
|
атом |
|
процедура |
Какой подход в построении программ наиболее подходит для использования в Лисп-системах программирования:
|
функциональный |
|
интерфейсный |
|
декларативный |
Что такое стек:
|
это набор данных, элементы которого обрабатываются по принципу «первый пришел, первый вышел» |
|
это набор данных, элементы которого обрабатываются по принципу «первый пришел, последний вышел» |
|
это набор данных, элементы которого обрабатываются по принципу «последний пришел, последний вышел» |
Общий принцип функционального программирования:
|
представление функции строится заранее |
|
представление функции строится и вычисляется также как и представление данных |
|
при символьном представлении данных представление функции нельзя построить теми же средствами, что и обработку значений |
Формой в языке Лисп называют:
|
описание функции на языке Лисп |
|
список из имени функции, перечня ее аргументов и значений |
|
список из представления функции и перечня ее аргументов |
Программа на языке Лисп это:
|
последовательность вычисляемых выражений |
|
последовательность данных любой природы |
|
последовательность вычисляемых форм |
Что такое рекурсивная функция:
|
это функция, имеющая несколько аргументов |
|
это функция, имеющая несколько значений |
|
это функция, определение которой имеет прямое или косвенное обращение к самой себе |
Каким образом можно загрузить программу из файла в Лисп-интерпретатор:
|
необходимо создать файл с расширением .lsp, без дополнительной настройки ОС сама воспримет его как файл с программой |
|
после загрузки Лисп-системы набрать в командной строке выражение (load ‘filename) |
|
загрузка программы осуществляется с помощью команды (eval (read ‘filename)) |
Какие из приведенных ниже строк являются комментариями в системе Лисп:
|
(comment комментарий) |
|
‘комментарий |
|
(bye комментарий) |
|
; комментарий |
Элементарные функции в Лисп системе это:
|
атомы, определенные как подпрограммы на уровне исполняемого кода |
|
встраиваемые S-выражения, имеющие определения на уровне исполнимого кода |
|
обычные атомы |
Какое событие произойдет после введения в строку интерпретатора выражения (Cons ‘a BC):
|
появится сообщение об ошибке, что переменная «BC» не имеет значения |
|
система выдаст правильный результат |
|
появится сообщение об ошибке, что переменная «a» не имеет значения |
Сообщение интерпретатора Step —> (выражение) означает:
|
данное выражение является значением и вычисляться не будет |
|
следующее выражение является результатом, который будет использоваться при следующих вызовах команды step |
|
на следующем шаге будет вычислено именно это выражение |
Процесс пошаговой интерпретации продолжается пока:
|
не закончится пошаговая интерпретация одного из выражений |
|
пока не будет набрана команда Break. |
|
не закончится пошаговая интерпретация всех выражений или не будет набрана команда Next |
Какой результат будет получен при вычислении выражения (CONS 10 12)
|
(10 . 12) |
|
(22) |
|
сообщение об ошибке, ведь надо поставить перед 10 и 12 знак апострофа |
Список аргументов специальной функции Defun содержит в порядке следования:
|
имя функции, типы и имена аргументов, определение функции |
|
имя функции, определение функции, список аргументов, тип результата |
|
имя функции, список аргументов, определение функции |
Какое событие произойдет после ввода в строку интерпретатора текста Cons ‘a ‘BC:
|
система выдаст правильный результат вычисления данного выражения |
|
ожидание продолжения ввода |
|
появится сообщение об ошибке |
Можно ли остановить процесс пошаговой интерпретации и если можно, то каким образом:
|
процесс остановить нельзя (окончание после разбора последнего выражения) |
|
набором команды команда Next |
|
набором команды Error |
Вычислимо ли выражение (EQ (car ‘(())) (cdr’(T . Nil))), если да, то какой ответ является верным:
|
нет, не вычислимо |
|
да, ответ False |
|
да, ответ T |
Что такое список:
|
последовательность атомов, разделенных запятыми, заключенная в скобки |
|
последовательность строк, заключенных в скобки |
|
последовательность любых данных — списков и атомов, а также S-выражений, разделенных пробелами, заключенная в скобки |
Какое из значений можно получить, вычислив форму (cdr ‘( a (b c) d)):
|
(a b c d) |
|
((b c) d) |
|
(b c) |
Укажите правильный результат вычисления формы (Cons ‘(A) Nil):
|
s-выражение ((Nil . Nil) . A) |
|
одноэлементный список ((A)) |
|
пара элементов (A . Nil) |
Что такое Атом:
|
это последовательность, состоящая из букв и цифр |
|
это последовательность, состоящая из букв и цифр, начинающаяся с буквы |
|
это последовательность, состоящая из букв и цифр, начинающаяся с цифры |
Являются ли эквивалентными записи точечной и списочной нотаций (A . B . C) и (A B C) соответственно:
|
нет, эквивалентными является записи (A . B . C) и (A (B C)) |
|
нет, эквивалентными являются записи (A . (B . (C . Nil))) и (A B C) |
|
нет, эквивалентными является записи (A . (B . C)) и (A B C) |
|
да |
Укажите правильный результат вычисления формы (Cons ‘Nil ‘(A)):
|
пара элементов (A . Nil) |
|
(Nil A) |
|
(Nil . (Nil . A)) |
|
(Nil . A) |
Вычислимо ли выражение (EQ (car ‘(A)) (cdr’(B))), если да, то какой ответ является верным:
|
нет, не вычислимо |
|
да, ответ True |
|
да, ответ Nil |
Какие из перечисленных ниже выражений вычислимы (не будет сообщения об ошибке):
|
(cdar ‘(a (b))) |
|
(caaaaaar ‘(a b с)) |
|
(caadr ‘(a (b c))) |
Какие из перечисленных представлений являются несписочным S-выражением:
|
‘(A) |
|
(A . B) |
|
(A) |
Какой из результатов может быть получен при вычислении формы (eq ‘(Nil) (atom ‘(T))), и укажите причину, почему это так:
|
Nil, т.к. форма (eq ‘(Nil) (atom ‘(T))) сведется к вычислению (eq ‘(Nil) Nil) |
|
T, т.к. ‘(Nil) и ‘(T) являются атомами |
|
Nil, т.к. форма сведется к вычислению (EQ Nil T) |
|
сообщение об ошибке, т.к. ‘(nil) это список |
|
T, т.к. предикат atom выдаст значении Nil |
Какие из представленных ниже форм представляют одноэлементный список в Лиспе:
|
(Nil) |
|
Nil |
|
(NIL . NIL) |
Какое из значений может быть получено при вычислении формы (cdr ‘( a (b (c)) d)):
|
((b (c)) d) |
|
(d) |
|
(b (c)) |
Являются ли приведенные ниже описания функции взятия левого элемента списка семантически и синтаксически верными. Указать верное описание:
|
(defun F(x) (cond (((atom x) x) (T (F (car x)) )) ) |
|
(defun f(x) (f (car x))) |
|
(defun F(x) (cond (F (car x)) ((atom x) x) )) |
Передача интерпретатору формы (f ‘x 3) означает то, что:
|
вызывается функция f, аргументом которой является результат вызова функции x с аргументом 3 |
|
это форма блокирована для вычисления |
|
вызывается функция f для двух аргументов ‘x и 3, данные » x » и «3» подаются в функцию в качестве значений аргументов |
В каком порядке будет проходить вычисление формы ((lambda (x) (car (cons (cdr x) x))) ‘(1 2 3)):
|
связывание переменной x со значением (1 2 3), вычисление хвоста списка, консолидация с исходным списком, вычисление головы итогового списка, результат (2 3) |
|
связывание переменной x со значением (1 2 3), вычисление головы списка, вычисление хвоста списка, соединение хвоста и остального списка, результат ((2 3) (1 2 3)) |
|
построение формы (car (cons (cdr x) x)) ,подстановка в нее значения ‘(1 2 3) (связывание с переменной x), вычисление хвоста списка, консолидация со списком, вычисление головы итогового списка, результат (2 3) |
Каким будет результат вычисления формы (cons (cdr ‘(A B C)) (car ‘((D)))):
|
( (B C) D) |
|
(B C (D)) |
|
((car ‘(A B C)) (D)) |
В Лиспе все типы данных:
|
необходимо указывать при описании функции |
|
включены в представление значений |
|
необходимо объявлять в начале текста программы |
Какое событие произойдет после введения в строку интерпретатора выражения (Cons a (quote BC)):
|
система выдаст правильный результат |
|
появится сообщение об ошибке, что переменная «BC» не имеет значения |
|
появится сообщение об ошибке, что переменная «a» не имеет значения |
Какие из данных выражений представлены списками:
|
(()) |
|
(‘A ‘B) |
|
A |
|
(Nil . Nil) |
Какое из выражений синтаксически корректно и не вызовет ошибку при интерпретации:
|
((lambda (x y) (cons (cdr y) (car x))) ‘(a b c) ‘(a)) |
|
((defun f(x) (cons (cdr x) (car x )) ‘(a b c))) |
|
((defun (x y) (cons (cdr x)) ‘(a b с)) |
Какая из последовательностей действий на первом шаге рекурсии, выполняемых интерпретатором при вычислении выражения (Факториал 1) , где факториал:
(DEFUN Факториал (LAMBDA (N)
(COND ((= N 0 ) 1 )
(T ( * N (Факториал (- N 1 ))) )
) ) )
является верной:
|
выбор определения функции { (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) }, выделение параметров {n = 1}, немедленный выбор второй ветви cond {(T ( * N (Факториал (- N 1 ))) ) }, вычисление этого предиката и переход ко второму шагу рекурсии |
|
выбор определения функции { (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) }, выделение параметров {n = 1}, перебор предикатов, вычитание единицы {N=N-1} , вычисление первого предиката {((= N 0 ) 1 ), ответ 1}. |
|
выбор определения функции { (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) }, выделение параметров {n = 1}, перебор предикатов, выбор первой ветви {((= N 0 ) 1 )} , вычисление функции =, вычисление предиката (Nil 1), т.е. переход ко второй ветви, выбор второй ветви cond {(T ( * N (Факториал (- N 1 ))) ) }, вычисление этого предиката и переход ко второму шагу рекурсии |
Какая из перечисленных ниже форм вычислима:
|
(EQ (Atom (quote A)) (Atom ‘(Abc))) |
|
(Cons (A B С) ‘B) |
|
(Atom (Quote A B C)) |
В каком случае правильно указано число вызовов функция 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))
) )))
при интерпретации выражений с указанными ниже аргументами:
|
вызовов 7, al- ((C A) (D B)), y – (C и D сидели на трубе) |
|
вызовов 5, al- ((C A) (D B)), y – (C и D сидели на трубе) |
|
вызовов 6, al- ((C A) (D B)), y – (C и D сидели на трубе) |
В каком случае правильно указан результат выполнения функции member, имеющей определение
(DEFUN member (x y) (COND
((null y) (QUOTE Nil))
((equal x (CAR y)) (QUOTE T))
((QUOTE T) (member x (CDR y)) )
))
при интерпретации выражений с указанными ниже аргументами:
|
x – ((A B)), y – (C A), результат T |
|
y – (A (B) C) y – (C (B) C A), результат T |
|
x – (B C D), y – (A (B C D)), результат T |
|
x- ((A) B C), y — (A B C D), результат T |
Какие из представленных форм является определением именованной функции в Лиспе:
|
(defun (x,y) (car (cons x (cdr y)))) |
|
((lambda (x y) (car (cons x (cdr y)))) ‘(1 2) ‘(2 3)) |
|
(defun F(x) ((lambda (y) (car y)) x) ) |
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение
(DEFUN append (x y) (COND
((null x) y)
((QUOTE T) (CONS
(CAR x)
(append (CDR x) y)
)
)
)
) ,
при интерпретации выражений с указанными ниже аргументами:
|
вызовов – 2, x – (cons (1 2)), y – (a b c d) |
|
вызовов – 3, x – (cons A B), y – (car (1 2)) |
|
вызовов – 4, x – (cons 1 2), y – (2) |
Какие способы представления структур данных используются в Лиспе:
|
в виде дерева, списочная и точечная нотации |
|
списочная и точечная нотации |
|
только списочная и строковая |
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение
(DEFUN append (x y) (COND
((null x) y)
((QUOTE T) (CONS
(CAR x)
(append (CDR x) y)
)
)
)
) ,
при интерпретации выражений с указанными ниже аргументами:
|
вызовов – 2, x – (car (A)), y – (car (1 2)) |
|
вызовов – 3, x – (cons 1 2), y – (1 2 2 3) |
|
вызовов – 4, x – (car (quote (1 2))), y – (1 2 3) |
В каком случае правильно указано количество обращений к последней ветви ((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))
)
)
при интерпретации выражений с указанными ниже аргументами:
|
обращений — 2, аргументы (a b) и ((c) (b)) |
|
обращений – 1, аргументы (a1 b1) и (a1 b1) |
|
обращений – 0, аргументы (a1 b1) и (a1 c1) |
|
обращений –2, аргументы (a (b)) и (с d) |
В каких случаях правильно указано число обращений к функции 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):
|
обращений – 3, аргументы x- (A B), y — (С), z — (A B D) |
|
обращений – 3, аргументы x- A, y — C, z — ((C) D) |
|
обращений – 0, аргументы x- Nil, y — A, z — (A B C) |
|
обращений – 4, аргументы x- T, y — T, z — (B A C) |
Какие из представленных ниже форм является несписочным S-выражением
|
() |
|
atom |
|
a . Nil |
|
(a . (b . c)) |
|
(a b c) |
|
(a . (b с)) |
Укажите, какая из приведенных ниже форм являются специальными:
|
(defun f(x) (car x)) |
|
(Atom ‘(x y)) |
|
nil |
|
T |
В каких случаях правильно указан результат выполнения функции member, имеющей определение
(DEFUN member (x y) (COND
((null y) (QUOTE Nil))
((equal x (CAR y)) (QUOTE T))
((QUOTE T) (member x (CDR y)) ) )
)
при интерпретации выражений с указанными ниже аргументами:
|
x – (A (B)), y – (C (B) A), результат T |
|
x- (A B C), y — (A B C D), результат Nil |
|
x – (A B C), y – (A B (C D)), результат Nil |
|
x – (A (B C)) y – (C A (B C) (A)), результат T |
Предикатом в Лиспе называют:
|
функцию, не имеющую выходные значения |
|
функцию, имеющую выходные значения T и Nil |
|
функцию, имеющую выходные значения TRUE и FALSE |
В каком случае интерпретатор не выдаст сообщение об ошибке при вводе в его строку выражения > abcdefg:
|
в любом случае, т.к. идентификатор не может быть больше 5 символов |
|
когда abcdefg является именем переменной, находящейся в ассоциативном списке |
|
когда abcdefg является именем переменной, не находящейся в ассоциативном списке |
Атом, введенный в строку без скобок, интерпретатор воспринимает как:
|
переменную |
|
функцию |
|
константу |
Какой результат будет получен при интерпретации выражения (cadr (eval ‘(cdr ‘(a b c))))
|
c |
|
(b с) |
|
(c) |
|
(a) |
|
Сообщение об ошибке |
Укажите выражения, при интерпретации которых возникнет сообщение об ошибке (Лисп элементарный):
|
(cddr ‘(A B . C)) |
|
(cdar ‘((A) B) ) |
|
(Caaadr ‘(A (B C))) |
|
(cddr ‘(A . Nil)) |
Предикат — это:
|
функция, имеющая область значений — множество комплексных чисел |
|
функция, имеющая выходные значения T и Nil |
|
функция, имеющая только одно выходное значение T |
В каком случае интерпретатор выдаст сообщение об ошибке при вводе в его строку выражения > a1:
|
когда a1 является именем переменной, находящейся в ассоциативном списке |
|
когда a1 является именем переменной, не имеющей значения |
|
когда a1 является именем функции |
Какие из записей выражений не эквивалентны:
|
Nil и (quote nil) |
|
(quote (Eq a)) и ‘(Eq a) |
|
Nil и True |
|
(car a) и ‘(car a) |
|
T и Nil |
Выражение (quote Atom) воспринимается интерпретатором как:
|
переменная |
|
функция |
|
константа |
Функционалом называют функцию:
|
аргументами или результатом которой могут выступать другие функции |
|
аргументами которой могут выступать значения, полученные вычислением других функций |
|
аргументами которой могут выступать символьные выражения |
Какие факторы должны быть учтены при определении отображающей функции:
|
способ получения результата из отображаемого множества |
|
каким языком воспользоваться для написания этой функции |
|
как распределить память под новое множество и определение функции |
Отметьте, какая из приведенных ниже форм содержит ошибку:
|
(defun f(x y) (map-comp #’(lambda (x1 y1) (* (car x1) (car y1))) x y)) |
|
(defun f(x y) (map-el #’(lambda (x1) (cons x1 y)) x)) |
|
(map-comp #’car ‘((1)( 2)(3)) ‘((4) (5) (6))) |
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным:
(defun map-comp (fn al vl)
(cond
(al (cons (fn (car al) (car vl))
(map-comp (cdr al) (cdr vl))
) ) ) )
|
(map-comp #’car ‘(1 2 3) ‘(1 2 4)), результат ( 1 2 3) |
|
(map-comp #’cons ‘(1) ‘(5 2)), результат (1 . (5 2)) |
|
(map-comp #’cons ‘(1 2 3) ‘(1 (2 4))), результат ((1 . 1) (2 . 2) (3 . 4)) |
|
(map-comp #’cons ‘(1 2 3) ‘(1 (2 4) )), результат ((1 . 1) (2 2 4) (3)) |
Какая из приведенных ниже форм содержит ошибку:
|
(map-el ‘#(car ‘(1 2 3)) ‘(1 2 3) ‘(4 5 6)) |
|
(defun f3 (xl) (map-el (lambda (x) (* x x )) ‘xl)) |
|
(defun f(x y) (map-el #’(lambda (x1) (/ x1 y)) x)) |
Что такое функционал:
|
это функция, в качестве аргументов которой могут выступать любые формы |
|
это функция, аргументом или результатом которой может выступать другая функция |
|
это функция, в качестве аргументов которой могут выступать значения других функций, вычисленных ранее |
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным:
(defun map-comp (fn al vl)
(cond
(al (cons (fn (car al) (car vl))
(map-comp (cdr al) (cdr vl))
) ) ) )
|
(map-comp #’/ ‘(1 2) ‘(2 2)), результат (0.5 .1.0) |
|
(map-comp #’+ ‘(1 2 3) ‘(1 2)), результат (2 4) |
|
(map-comp #’* ‘(1 2 3) ‘((1 2) 4)), результат ((1 2) 8) |
|
(map-comp #’/ ‘(1 2) ‘(2 2)), результат (1/2 1) |
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным:
(defun map-ap (fn ll)
(cond
(ll (append (fn (car ll) )
(map-ap fn (cdr ll) )
) ) ) )
|
(map-ap #’cdr ‘(1 2 3)), результат ((2 3) (3) nil) |
|
(map-ap #’car ‘(10.0 7.0)), результат (nil nil) |
|
(map-ap #’cdr ‘((A B C)) ), результат (B C) |
Какие факторы должны быть учтены при определении отображающей функции:
|
определение структуры данных в отображаемом множестве |
|
каким образом сохранять определения функции в системе |
|
как отличить нужные конечные результаты отображающей функции от промежуточных. |
Какая из приведенных ниже форм не содержит ошибки:
|
(defun F(x y) (map-el #’* (cons x (cons y y)))) |
|
(map-comp #’(lambda (x y) (* x y)) ‘(1 2) ‘(3 4)) |
|
(map-el #’(lambda (y)(cons x y)) x)) |
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным:
(defun map-ap (fn ll)
(cond
(ll (append (fn (car ll) )
(map-ap fn (cdr ll) )
) ) ) )
|
(map-ap #’* ‘(1 2 3)), результат (1 4 9) |
|
(map-ap #’+1 ‘(10.0 7.0)), результат (11.0 8.0) |
|
(map-ap #’cdr ‘((A B C) (A B (C))) ), результат (B C B C) |
В чем заключается различие между аргументами (и значениями) функционалов и функций:
|
в качестве аргументов и результатов у функционалов могут выступать функции |
|
в качестве аргументов и результатов у функций могут выступать только определенные типы объектов, а у функционалов любые |
|
в качестве аргументов и результатов у функций могут выступать функционалы. |
Какой из результатов будет получен при вычисления формы (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))) )) )
))
|
(b с 1 a a) |
|
(с a a b 1) |
|
(1 a b c) |
|
(a с b 1) |
Укажите, какая из приведенных ниже форм является специальной:
|
(eval ‘(car x)) |
|
(cond ((Eq x y) (print x)) (T (print y)) ) |
|
nil |
|
(Eq (x y)) |
Какой из результатов вычисления формы (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))) )) )
))
|
(a с b) |
|
(a b с) |
|
(с a b) |
|
(a b a b) |
Каким образом низкоуровневая программа может быть включена в Лисп-систему:
|
создание низкоуровневой программы в Лисп-системе пользователем |
|
путем трансляции Лисп-кода в код ассемблера Лисп-программы с дальнейшим использованием |
|
лисп система не поддерживает работу с языком Ассемблер |
Какой из результатов вычисления формы (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 2 3 5) |
|
(3 1 2 5) |
|
(3 2 5 1) |
|
(1 2 5 3) |
Каким образом низкоуровневая программа может быть включена в Лисп-систему:
|
никаким |
|
создание низкоуровневой программы в Лисп-системе пользователем |
|
создание низкоуровневой программы возможно вне систем программирования, но никак не внутри системы |
Какой результат будет получен при вычислении формы (funcall (cons ‘car ‘(‘(C D)))):
|
C |
|
(car ‘(C D)) |
|
сообщение б ошибке |
Что означает запись (let ((a (cons x y))) a) :
|
замена в последующих выражениях списков «x» и «y» на список «a» |
|
присваивание локальной переменной «a» результата консолидации (cons x y) |
|
замена в выражениях (аргументах Let) повторяющегося подвыражения «(cons x y)» на «a» без воздействия на результат вычисления последующих форм |
Какое из представленных ниже выражений содержит ошибки:
|
(1 . (2 3 . (4 5))) |
|
(1 2 3 4 5) |
|
(((1 . 2) . (3 . 4 . 5)) |
Укажите, какие функции являются псевдо-функциями Лисп-системы:
|
(cond) |
|
(setq) |
|
(union) |
Какое из представленных ниже выражений содержит ошибки:
|
(((a . b) . c) d . e) |
|
(a b .( c d) e) |
|
(a b c d . e) |
В каких случаях можно использовать инструкцию Let :
|
задание глобальной переменной значения |
|
вынос из определения совпадающих подвыражений |
|
вывод на экран результата выполнения функции, идущей в качестве аргумента Let |
Каким образом реализуются замедленные вычисления:
|
запоминанием символьного выражения с контекстом его вычисления |
|
формированием рецептов и запоминанием текущего состояния памяти |
|
блокировкой вычислений и запоминанием текущего состояния стэка |
В чем заключается действие описанной в лекции операции «приостановка вычислений»:
|
аргумент этой функции вычисляется |
|
аргумент этой функции не вычисляется |
|
аргумент этой функции запоминается для последующего вычисления (вычисление откладывается) |
Каким образом можно исключить повторное вычисление одного и того же рецепта:
|
введением флага, вычисленный рецепт будет иметь вид (e AL ) |
|
введением флага, вычисленный рецепт будет иметь вид (Nil (eval e AL )) |
|
введением флага, вычисленный рецепт будет иметь вид (T e AL ) |
|
правильного из перечисленных выше ответов нет |
Какая из формальных реализаций операции «возобновление вычислений» является верной:
|
(funcall (f x)), где f(x) определено с помощью (defun f(x) (x)) |
|
(apply (x )) |
|
(evcon x) |
|
(defun f(x) (x)) |
Какая информация содержится в ячейке, входящей в состав древовидного списка, в котором содержаться S-выражения в памяти:
|
атом, с адресом описательной структуры и адрес декремента |
|
список (S-выражение) с описательной структурой |
|
список, с адресом на описательную структуру и декремент |
Для каких целей в Лисп-системе используют список свойств атома:
|
для хранения данных о состоянии ячейки памяти, занимаемой атомом |
|
для хранения контекста, в котором используется данный атом |
|
для хранения значений переменных, определений функции и других свойств, в т.ч. создаваемых самим программистом |
Какая информация содержится в ячейке, входящей в состав древовидного списка, в котором содержаться S-выражения в памяти:
|
имя атома и список свойств этого атома |
|
список (S-выражение) с описательной структурой |
|
атом, с адресом описательной структуры и адрес декремента |
С помощью какой функции Clisp можно посмотреть определение функции в списке свойств атома:
|
(symbol-function ) |
|
(function-symbol) |
|
(symbol-value ) |
Укажите, какая из перечисленных ниже функций изменяет структуру существующих списков:
|
rplacd |
|
caddr |
|
Cond |
|
lambda |
Какой из результатов вычисления формы (grp ‘(1 2 (3))) является верным. Функция (grp x) имеет определение
(defun grp (x)
(list (car x) (list (cadr x) (caddr x)))
)
|
((1)(2)(3)) |
|
(1 (2 (3))) |
|
(1 2 3) |
|
(1 2 (3)) |
Каким образом хранятся S-выражения в памяти:
|
в виде древовидного списка неограниченной длины |
|
в виде хэш-таблицы |
|
в виде линейного списка фиксированной длины |
|
в виде древовидного списка фиксированной длины |
Какая из форм может служить аналогом подпрограммы на Pascal
procedure pr(x: integer);
begin
a:=0;
for i:=1 to x do
a:=a+1;
print (a);
end;
|
(prog pr ()
(setq a 0)
B (cond ((= a x) (print a)(return a) ) )
(setq a (+ a 1))
(go B)
)
|
|
(defun pr(x)
(prog (a)
(setq a 0)
B (cond ((= a x) (print a)(return a) ) )
(setq a (+ a 1))
(go B)
))
|
|
(defun pr(x)
(prog (a)
B (cond ((= a x) (print a)(return a) ) )
(setq a (+ a 1))
(go B)
))
|
Какой результат будет получен при вычислении последовательности форм
(set 'x 'y)
(set x 'z)
(setq z 5)
(list x y z) :
|
(x y z 5) |
|
(x y z) |
|
(5 x y) |
|
(y z 5) |
Как устроен основной рабочий цикл диалога с Лисп-системой:
|
чтение — печать – вычисление – печать |
|
вычисление – печать |
|
чтение-вычисление |
Какая информация содержится в файле lispinit.mem, входящем в состав Лисп-системы:
|
начальный образ состояния памяти |
|
исходные тексты программ |
|
конфигурации системы |
Каким образом можно ввести новое свойство атома в Лисп-систему:
|
(Setf «Атом» ‘свойство) |
|
(Setf (get «Атом») свойство) |
|
(Setf (get ‘Атом) ‘свойство) |
Что непременно делает интерпретатор до применения безымянной функции:
|
связывает определение с аргументами функции |
|
помещает аргументы функции в ассоциативный список |
|
связывает переменные из списка параметров со значениями фактических аргументов |
Добавить комментарий
Для отправки комментария вы должны авторизоваться.