Введение в программирование на Лиспе



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

Какое назначение имеет функция apply, входящая в состав интерпретатора:

  • функция вычисления условных форм или ветвлений
  • вычисление выражений вида (quote ..) и ‘….
  • (Правильный ответ) применение функции, подаваемой в качестве параметра в apply, к ее аргументам – то и другое представлено как данные Лиспа

Какая из перечисленных ниже форм может быть переменной:

  • ‘A
  • (A)
  • (Правильный ответ) Adcdefj

Укажите форму, содержащую ошибку:

  • (defun f3 (xl) (map-el (lambda (x)(+ 10 (* x x x))) xl))
  • (Правильный ответ) (defun f(x y) (map-el (lambda (x y) (+ (car x) (car y)) x y)))
  • (Правильный ответ) (map-comp ‘#(car ‘(1 2 3)) ‘(1 2 3) ‘(4 5 6))
  • (Правильный ответ) (defun f(x y) (map-el (lambda (x1 y1) (/ (car x1) (car y1)))))

Какие из представленных ниже форм является несписочным S-выражением

  • (Правильный ответ) (1 . (2 . 3))
  • (1 (2 3))
  • (1 2 3)
  • ()
  • (Правильный ответ) 1

Являются ли приведенные ниже описания функции взятия правого элемента (атома ) списка (списочной нотации) семантически и синтаксически верными. Указать верное описание:

  • (defun F(x) (cond (F (cdr x)) ((atom x) x) ))
  • (Правильный ответ) (defun F(x) (cond ((Null (cdr x)) (car x)) (T (F (cdr x)) )) )
  • (defun f(x) (f (cdr x)))

Основная структура данных языка Лисп:

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

Пары «переменная-значение» в элементарном Лиспе содержатся в:

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

Какой подход в построении программ преимущественно используется в Лисп-системах программирования:

  • объектно-ориентированный
  • (Правильный ответ) функциональный
  • императивный

Под термином «форма» в языке Лисп понимается:

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

Программой на языке Лисп называют:

  • последовательность вычисляемых атомов
  • (Правильный ответ) последовательность вычисляемых форм
  • (Правильный ответ) последовательность вычисляемых выражений

Какой подход в построении программ наиболее подходит для использования в Лисп-системах программирования:

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

Общий принцип функционального программирования:

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

Формой в языке Лисп называют:

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

Элементарными функциями в Лисп системе называют:

  • любые неделимые элементы — атомы
  • встраиваемые S-выражения, имеющие определения на уровне исполнимого кода
  • (Правильный ответ) атомы, определенные как подпрограммы на уровне исполняемого кода

Сообщение интерпретатора Step 3> означает:

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

Какие из приведенных ниже строк являются комментариями в системе Лисп:

  • (comment комментарий)
  • ‘комментарий
  • (bye комментарий)
  • (Правильный ответ) ; комментарий

Элементарные функции в Лисп системе это:

  • (Правильный ответ) атомы, определенные как подпрограммы на уровне исполняемого кода
  • встраиваемые S-выражения, имеющие определения на уровне исполнимого кода
  • обычные атомы

Какое событие произойдет после введения в строку интерпретатора выражения (Cons ‘a BC):

  • (Правильный ответ) появится сообщение об ошибке, что переменная «BC» не имеет значения
  • система выдаст правильный результат
  • появится сообщение об ошибке, что переменная «a» не имеет значения

Сообщение интерпретатора Step —> (выражение) означает:

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

Укажите результат вычисления выражения (CONS Nil 20)

  • (Nil)
  • (20)
  • (Правильный ответ) (Nil . 20)

Вычислимо ли выражение (EQ (car ‘(())) (cdr'(T . Nil))), если да, то какой ответ является верным:

  • нет, не вычислимо
  • да, ответ False
  • (Правильный ответ) да, ответ T

Укажите правильный результат вычисления формы (Cons ‘Nil ‘(A)):

  • пара элементов (A . Nil)
  • (Правильный ответ) (Nil A)
  • (Nil . (Nil . A))
  • (Nil . A)

Какие из данных выражений представлены списками:

  • (1 . 2)
  • (Правильный ответ) (1 2)
  • 1

Результатом выполнения функции CONS над двумя атомами является:

  • атом
  • список вида (Атом1 Атом2)
  • (Правильный ответ) бинарный узел вида (Атом1 . Атом2)

Какой из результатов может быть получен при вычислении формы (eq ‘(Nil) (atom ‘(T))), и укажите причину, почему это так:

  • (Правильный ответ) Nil, т.к. форма (eq ‘(Nil) (atom ‘(T))) сведется к вычислению (eq ‘(Nil) Nil)
  • T, т.к. ‘(Nil) и ‘(T) являются атомами
  • Nil, т.к. форма сведется к вычислению (EQ Nil T)
  • сообщение об ошибке, т.к. ‘(nil) это список
  • T, т.к. предикат atom выдаст значении Nil

Какое из значений может быть получено при вычислении формы (cdr ‘( a (b (c)) d)):

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

Результатом выполнения функции CDR над списком является:

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

Передача интерпретатору формы (f ‘x 3) означает то, что:

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

Что происходит при вычислении формы (defun f(x)(cons x x)):

  • имя функции f связывается с ее определением, но данная форма не вычислима, т.к. не указано значение переменной x
  • (Правильный ответ) имя функции f связывается с ее определением, и будет доступно далее при работе с интерпретатором
  • имя функции f связывается с ее определением и будет доступно только один раз после вычисления указанной формы

Какие из представленных ниже форм представляют одноэлементный список в Лиспе:

  • (Правильный ответ) (Atom)
  • (Правильный ответ) (Атом . Nil)
  • Atom

Что происходит при вычислении интерпретатором формы ((lambda (x) (cons x x)) ‘A):

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

Какие события происходят в системе при вычислении интерпретатором формы ((lambda (x y) (cons x y)) ‘A ‘B):

  • данная форма останется доступной в системе с возможностью многократного ее вызова с различными значениями переменных X и Y
  • в системе создается функциональный объект с именем Lambda
  • (Правильный ответ) переменная X связывается со значением A, Y – с B, выполняется однократное вычисление безымянной функции, строящей пару (A . B)

Данные какого вида и типа могут выступать в качестве аргументов функции в Лиспе:

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

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

  • (defun f (x) (f (car x)))
  • (Правильный ответ) (defun f (x) (cond ((Atom x) x)(T (f (car x)))))
  • (defun f (lambda (x) (cond (T ( * x (f (- x 1 ))) ) ) ))

В каких случаях правильно указано число обращений к функции 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, y — A, z — (A B C)
  • (Правильный ответ) обращений – 0, аргументы x- A, y — B, z – C
  • обращений – 2, аргументы x- (1 2), y — A, z — (B A C D)
  • обращений – 4, аргументы x- (1 2), y — (3 4), z — (1 2 3 4)

В каком случае правильно указан результат выполнения функции 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

В каком случае правильно указано количество обращений к последней ветви второго (вложенного) 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)) ) )

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

  • (Правильный ответ) обращений –0, аргументы (a (b)) и (с d)
  • обращений -3, аргументы (a b) и (c b)
  • обращений – 1, аргументы (a b) и (a c)
  • (Правильный ответ) обращений – 0, аргументы (a b) и (c d)

В каком случае правильно указано количество обращений к последней ветви ((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, аргументы (a b) и (a c)
  • обращений -3, аргументы (a b) и (c b)
  • обращений – 1, аргументы (1 2) и (1 0)
  • (Правильный ответ) обращений –1, аргументы (a b) и (a (d))

Какие из представленных ниже форм является несписочным S-выражением

  • ()
  • (Правильный ответ) atom
  • a . Nil
  • (Правильный ответ) (a . (b . c))
  • (a b c)
  • (a . (b с))

В каких случаях правильно указан результат выполнения функции 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

Какой результат будет получен при интерпретации выражения (cddr (eval ‘(cdr ‘(a b c))))

  • (b с)
  • (Правильный ответ) Nil
  • Сообщение об ошибке
  • b

В каком случае интерпретатор выдаст сообщение об ошибке при вводе в его строку выражения > (a ):

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

Что такое интерпретация:

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

В каком порядке будет вычислено выражение (cons (car x) (car y)):

  • (Правильный ответ) сначала будут получены значение переменной x и результат (car x), затем переменной y и результат (car y), а в конце будет выполнена операция cons с результатами (car x) и (car y)
  • сначала будут получены значения x и y, затем в порядке следования выполнены операции cons, cdr и car
  • сначала будут получены значение переменной x, затем переменной y, а в конце будет выполнена операция cons с результатами (car x) и (car y)

Универсальная функция eval в базовом Лиспе – это:

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

Что непременно делает интерпретатор до применения функции:

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

Выражение (quote Atom) воспринимается интерпретатором как:

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

Каким образом в базовом Лиспе изображается строковая константа:

  • «строка
  • (Правильный ответ) «строка»
  • ‘строка

Функционалом называют функцию:

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

Какие факторы должны быть учтены при определении отображающей функции:

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

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

(defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )

  • (map-el ‘(1 2 3 4))
  • (map-el ‘(1 2 3 4) #’caddr)
  • (map-el ‘+ ‘(1 2 3 4))
  • (map-el caddr ‘(1 2 3 4))
  • (Правильный ответ) (map-el #’car ‘((1)(2)(3)(4)))

В чем заключается различие между аргументами (и значениями) функционалов и функций:

  • (Правильный ответ) в качестве аргументов и результатов у функционалов могут выступать функции
  • в качестве аргументов и результатов у функций могут выступать только определенные типы объектов, а у функционалов любые
  • в качестве аргументов и результатов у функций могут выступать функционалы.

Какой из результатов будет получен при вычисления формы (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)

Какой из результатов вычисления формы (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)

Каким образом низкоуровневая программа может быть включена в Лисп-систему:

  • (Правильный ответ) создание низкоуровневой программы в Лисп-системе пользователем
  • (Правильный ответ) путем трансляции Лисп-кода в код ассемблера Лисп-программы с дальнейшим использованием
  • лисп система не поддерживает работу с языком Ассемблер

Каким образом низкоуровневая программа может быть включена в Лисп-систему:

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

Что означает запись (let ((a (cons x y))) a) :

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

Какой результат будет получен при вычислении формы (cons ‘(car ‘(A B)) ‘(car ‘(C D))) :

  • сообщение об ошибке
  • (A . C)
  • (Правильный ответ) ((car ‘(A B)) . (car ‘(B C)))

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

  • (Правильный ответ) (apply (f x y)) и (funcall f x y)
  • (eval ‘(f x y)) и (funcall f ‘x ‘y)
  • (apply (f x y)) и (funcall (f x y))
  • (eval ‘(f ‘x ‘y)) и (eval ‘(f x y))

Укажите, какие функции являются псевдо-функциями Лисп-системы:

  • (cond)
  • (Правильный ответ) (setq)
  • (union)

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

  • (append f (x y)) и (funcall f (x y))
  • (Правильный ответ) (eval ‘(f x y)) и (funcall f x y) при учете, того, что (defun f(x y) (cons x y)) был вызван ранее
  • (apply f (x y)) и (funcall f x y)
  • (eval f (x y)) и (funcall f x y)

В чем заключается действие описанной в лекции операции «приостановка вычислений»:

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

Каким образом реализуются замедленные вычисления:

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

Сохранение и последующий вызов функции называется:

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

Что содержится в рецепте вычисления:

  • адрес вычисляемой формы
  • (Правильный ответ) отложенная форма и контекст, в котором она вызывается
  • только вычисляемая форма

Какая из формальных реализаций операции «приостановка вычислений» является верной:

  • (Правильный ответ) (lambda () x)
  • (quote x)
  • (defun f(x) x)
  • ‘x

В чем заключается действие описанной в лекциях функции «возобновление вычислений»:

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

Каким образом можно исключить повторное вычисление одного и того же рецепта:

  • введением флага, вычисленный рецепт будет иметь вид (e AL )
  • введением флага, вычисленный рецепт будет иметь вид (Nil (eval e AL ))
  • введением флага, вычисленный рецепт будет иметь вид (T e AL )
  • (Правильный ответ) правильного из перечисленных выше ответов нет

Какой из результатов вычисления формы (rplaca (cdr x) (car x)), где x – список (a b c d), является правильным:

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

Какой из результатов вычисления формы (grp ‘(1 2 3 4)) является верным. Функция (grp x) имеет определение

(defun grp (x)(list (car x) (list (cadr x) (caddr x))))

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

С помощью какой функции Clisp можно посмотреть определение функции в списке свойств атома:

  • (Правильный ответ) (symbol-function )
  • (function-symbol)
  • (symbol-value )

С помощью каких функций Clisp можно посмотреть значение глобальной переменной:

  • (symbol-function )
  • (symbol-plist)
  • (Правильный ответ) (symbol-value )

Для чего необходима сборка «мусор»:

  • для очищения памяти после завершения работы системы
  • для очищения памяти перед запуском Лисп-системы
  • (Правильный ответ) для повторного распределения памяти

Какая из форм может служить аналогом подпрограммы на 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) ))

Какая из приведенных ниже форм позволяет находить максимальный элемент ‘i’ списка ̵