Главная / Программирование /
Введение в программирование на Лиспе / Тест 9
Введение в программирование на Лиспе - тест 9
Упражнение 1:
Номер 1
Каким образом реализуются замедленные вычисления:
Ответ:
 (1) запоминанием символьного выражения с контекстом его вычисления 
 (2) блокировкой вычислений и запоминанием текущего состояния стэка 
 (3) формированием рецептов и запоминанием текущего состояния памяти 
Номер 2
Что содержится в рецепте вычисления:
Ответ:
 (1) только вычисляемая форма 
 (2) адрес вычисляемой формы 
 (3) отложенная форма и контекст, в котором она вызывается 
Номер 3
Что означает термин "рецепт вычисления выражений":
Ответ:
 (1) рецепт - это ссылка на обыкновенную вложенную функцию 
 (2) рецепт – это ссылка на существующую форму и связанный с ее исполнением ассоциативный список 
 (3) рецепт – это ссылка на параллельный процесс 
Упражнение 2:
Номер 1
В чем заключается преимущество использования ленивых вычислений:
Ответ:
 (1) экономия времени за счет исключения невостребованных вычислений 
 (2) экономия памяти 
 (3) экономия времени при проектировании программы 
Номер 2
В чем заключается преимущество использования ленивых вычислений:
Ответ:
 (1) возможность использования нетипизированных переменных 
 (2) экономия времени за счет исключения невостребованных вычислений 
 (3) экономия строчек кода 
Номер 3
В чем заключается преимущество использования ленивых вычислений:
Ответ:
 (1) экономия памяти 
 (2) экономия времени за счет исключения невостребованных вычислений 
 (3) экономия строчек кода 
Упражнение 3:
Номер 1
Приостановка и последующее возобновление вычислений называется:
Ответ:
 (1) вызовом по указателю  
 (2) вызовом по значению 
 (3) вызовом по необходимости 
 (4) вызовом по событию 
Номер 2
Откладывание представления формы с последующим ее вычислением, если понадобилось ее значение, называется:
Ответ:
 (1) вызовом по событию 
 (2) вызовом по необходимости 
 (3) системным вызовом  
 (4) вызовом по ссылке 
Номер 3
Сохранение и последующий вызов функции называется:
Ответ:
 (1) вызовом по необходимости 
 (2) вызовом по значению 
 (3) вызовом по ссылке 
 (4) вызовом по имени 
Упражнение 4:
Номер 1
В чем заключается действие описанной в лекции операции "приостановка вычислений":
Ответ:
 (1) вычисление формы-аргумента запоминается и откладывается для последующего возобновления 
 (2) отменяется вычисление формы-аргумента  
 (3) форма-аргумент этой функции вычисляется в соответствии с контекстом вызова 
Номер 2
В чем заключается действие описанной в лекции операции "приостановка вычислений":
Ответ:
 (1) вычисления аргумента этой функции не откладывается, аргумент запоминается вместе с контекстом вызова для текущего вычисления 
 (2) вычисления аргумента этой функции откладывается, аргумент запоминается вместе с контекстом вызова для последующего возобновления вычислений 
 (3) вычисления аргумента этой функции не откладывается, аргумент вычисляется моментально. 
Номер 3
В чем заключается действие описанной в лекции операции "приостановка вычислений":
Ответ:
 (1) аргумент этой функции не вычисляется 
 (2) аргумент этой функции вычисляется 
 (3) аргумент этой функции запоминается для последующего вычисления (вычисление откладывается) 
Упражнение 5:
Номер 1
Какая из формальных реализаций операции "приостановка вычислений" является верной:
Ответ:
 (1) (eval x)
 
 (2) 'x
 
 (3) (defun f(x) x)
 
 (4) (lambda () x)
 
Номер 2
Какая из формальных реализаций операции "приостановка вычислений" является верной:
Ответ:
 (1) (lambda () x)
 
 (2) ;x
 
 (3) (lambda (x) x)
 
 (4) "x"
 
Номер 3
Какая из формальных реализаций операции "приостановка вычислений" является верной:
Ответ:
 (1) (quote x)
 
 (2) 'x
 
 (3) (lambda () x)
 
 (4) (defun f(x) x)
 
Упражнение 6:
Номер 1
Какая из формальных реализаций операции "возобновление вычислений" является верной:
Ответ:
 (1) (evcon x)
 
 (2) (defun f(x) (x))
 
 (3) (funcall (f x))
, где f(x)
определено с помощью (defun f(x) (x))
 
 (4) (apply (x ))
 
Номер 2
Какая из формальных реализаций операции "возобновление вычислений" является верной:
Ответ:
 (1) (x )
 
 (2) (append x)
 
 (3) (funcall x)
 
 (4) (defun f(x) (x))
 
Номер 3
Какая из формальных реализаций операции "возобновление вычислений" является верной:
Ответ:
 (1) (x )
 
 (2) (eval x AL)
, где AL
-ассоциативный список 
 (3) (lambda (x) (x) x)
 
 (4) (defun f(x) (x))
 
Упражнение 7:
Номер 1
В чем заключается действие описанной в лекциях функции "возобновление вычислений":
Ответ:
 (1) аргумент этой функции вычисляется в соответствии с контекстом вызова 
 (2) аргумент этой функции – выражение, которое будет вычислено после вычисления остальной части выражения, в состав которого оно входит 
 (3) аргумент этой функции может не вычисляться 
Номер 2
В чем заключается действие описанной в лекциях операции "возобновление вычислений":
Ответ:
 (1) аргумент этой функции вычисляется с потерей значения 
 (2) аргумент этой функции рассматривается системой как комментарий 
 (3) аргумент этой функции вычисляется, она является аналогом eval
 
Номер 3
В чем заключается действие операции "возобновление вычислений":
Ответ:
 (1) аргумент этой функции не вычисляется 
 (2) аргумент этой функции вычисляется после отложения вычисления (вычисляется с контекстом вызова) 
 (3) аргумент этой функции вычисляется, она является аналогом eval
 
Упражнение 8:
Номер 1
Каким образом можно исключить повторное вычисление одного и того же рецепта:
Ответ:
 (1) введением флага, невычисленный рецепт будет иметь вид (Nil e AL )
 
 (2) введением флага, не вычисленный рецепт будет иметь вид (T e AL )
 
 (3) введением флага, не вычисленный рецепт будет иметь вид (T (eval e AL ))
 
 (4) правильного из перечисленных выше ответов нет  
Номер 2
Каким образом можно исключить повторное вычисление одного и того же рецепта:
Ответ:
 (1) введением флага, вычисленный рецепт будет иметь вид (e AL )
 
 (2) введением флага, вычисленный рецепт будет иметь вид (T e AL )
 
 (3) введением флага, вычисленный рецепт будет иметь вид (Nil (eval e AL ))
 
 (4) правильного из перечисленных выше ответов нет 
Номер 3
Каким образом можно исключить повторное вычисление одного и того же рецепта:
Ответ:
 (1) введением флага, вычисленный рецепт будет иметь вид (Nil e AL )
 
 (2) введением флага, вычисленный рецепт будет иметь вид (T e AL )
 
 (3) введением флага, вычисленный рецепт будет иметь вид (T (eval e AL ))
 
 (4) правильного из перечисленных выше ответов нет