Главная /
Введение в программирование на Лиспе /
Какая из последовательностей действий на первом шаге рекурсии, выполняемых интерпретатором при вычислении выражения (Факториал 1) , где факториал: (DEFUN Факториал (LAMBDA (N) (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) ) ) ) является верной:
Какая из последовательностей действий на первом шаге рекурсии, выполняемых интерпретатором при вычислении выражения (Факториал 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 ))) ) },
вычисление этого предиката и переход ко второму шагу рекурсии Сложность вопроса
95
Сложность курса: Введение в программирование на Лиспе
34
Оценить вопрос
Комментарии:
Аноним
Это очень легкий решебник по интуиту.
13 ноя 2018
Аноним
Я завалил зачёт, почему я не углядел этот великолепный сайт с ответами по тестам интуит прежде
16 дек 2016
Другие ответы на вопросы из темы программирование интуит.
- # Являются ли приведенные ниже описания функции взятия второго элемента (необязательно атома) списка семантически и синтаксически верными. Указать верное описание:
- # Какие из представленных ниже форм являются вычислимыми формами языка Лисп:
- # Атом, введенный в строку без скобок, интерпретатор воспринимает как:
- # Какой результат будет получен при интерпретации выражения (cddr (eval '(cdr '(a 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))) )) ) ))