Введение в программирование на Лиспе - ответы
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным: (defun map-comp (funcall fn al vl) (cond (al (cons (fn (car al) (car vl)) (map-comp (cdr al) (cdr vl))) ) ) )
Являются ли приведенные ниже описания функции взятия правого элемента (атома ) списка (списочной нотации) семантически и синтаксически верными. Указать верное описание:
В каких случаях правильно указан результат применения функции 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)))) ))
к следующим аргументам:
Какая из форм может служить аналогом подпрограммы на Pascal procedure pr(x: integer);begin a:=0; for i:=1 to x do a:=a+1; print (a);end;
Как правильно будет выглядеть эквивалент условного выражения языка Паскаль "if (a>b) then print (a) else print (b)" на языке Лисп:
В каком случае интерпретатор не выдаст сообщение об ошибке при вводе в его строку выражения > abcdefg:
Какой из результатов вычисления формы (rplaca x (cddr x)), где x – список (a b c d), является правильным:
Какой подход в построении программ наиболее подходит для использования в Лисп-системах программирования:
Какой из результатов вычисления формы (pgrp '(1 2 3)) является верным. Функция (pgrp x) имеет определение (defun pgrp (x)(rplacd (rplaca (cdr x) (cons (cadr x) (cddr x))) NIL))
В каких случаях правильно указан результат выполнения функции member, имеющей определение(DEFUN member (x y) (COND ((null y) (QUOTE Nil)) ((equal x (CAR y)) (QUOTE T)) ((QUOTE T) (member x (CDR y)) ) ) )
при интерпретации выражений с указанными ниже аргументами:
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение (DEFUN append (x y) (COND ((null x) y) ((QUOTE T) (CONS (CAR x) (append (CDR x) y) ) )) ) ,
при интерпретации выражений с указанными ниже аргументами:
Какой результат будет получен при вычислении последовательности форм (set 'x 'y)(set x 'z)(setq z 5)(list x y z) :
Какой из списков правильно представляет S-выражение (точечную нотацию) ((A . (B . C) ) . (D . (E . Nil))):
Как правильно будет выглядеть эквивалент условного выражения языка Паскаль "if (a=b) then print ('a равно b') else print ('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):
В каком случае правильно указано количество обращений к последней ветви ((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)) ) )
при интерпретации выражений с указанными ниже аргументами:
В каком случае правильно указан результат выполнения функции member, имеющей определение (DEFUN member (x y) (COND ((null y) (QUOTE Nil)) ((equal x (CAR y)) (QUOTE T)) ((QUOTE T) (member x (CDR y)) ) ))
при интерпретации выражений с указанными ниже аргументами:
В каких случаях правильно указан результат применения функции 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)))) ))
к следующим аргументам:
В каком случае правильно указано число вызовов функция 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)) ) )))
при интерпретации выражений с указанными ниже аргументами:
Какой из результатов вызова функционала map-el, аргументами которого выступают следующие функции и списки, является правильным: (defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным: (defun map-comp (fn al vl) (cond (al (cons (fn (car al) (car vl)) (map-comp (cdr al) (cdr vl))) ) ) )
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным: (defun map-ap (fn ll) (cond (ll (append (fn (car ll) ) (map-ap fn (cdr ll) )) ) ) )
Какой из результатов вычисления формы (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))) )) ) ))
Какой из результатов вычисления формы (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)) ))
Какой из результатов вычисления формы (rplacd (cddr x) (car x)), где x – список (a b c d), является верным:
Какой из результатов вычисления формы (rplaca (cdr x) (car x)), где x – список (a b c d), является правильным:
Какой из результатов вычисления формы (grp '(1 2 3 4)) является верным. Функция (grp x) имеет определение (defun grp (x)(list (car x) (list (cadr x) (caddr x))))
Какой из результатов вычисления формы (pgrp '(1 2 3 4)) является верным. Функция (pgrp x) имеет определение (defun pgrp (x)(rplacd (rplaca (cdr x) (cons (cadr x) (cddr x))) NIL))
Какой результат будет получен при вычислении последовательности форм (set 'x 'car) (funcall x '(a b c)) :
Какая из представленных ниже форм эквивалентна подпрограмме на языке 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; :
Какой из результатов вычисления формы (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)) ))
В каких случаях правильно указано число обращений к функции 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):
В каком случае правильно указано количество обращений к последней ветви второго (вложенного) 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)) ) )
при интерпретации выражений с указанными ниже аргументами:
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным: (defun map-ap (fn ll) (cond (ll (append (fn (car ll) ) (map-ap fn (cdr ll) )) ) ) )
Какой из результатов вычисления формы (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))) )) ) ))
Откладывание представления формы с последующим ее вычислением, если понадобилось ее значение, называется:
Какая информация содержится в ячейке, входящей в состав древовидного списка, в котором содержаться S-выражения в памяти:
Какой из результатов вычисления формы (rplacd (car x) (cddr x)), где x – список (a b c d), является верным:
Какой из результатов вычисления формы (rplaca '(e f) (car x)), где x – список (a b c d), является верным:
Какой из результатов вычисления формы (grp '(1 2 (3))) является верным. Функция (grp x) имеет определение (defun grp (x)(list (car x) (list (cadr x) (caddr x))))
Какой из результатов будет получен при вычисления формы (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))) )) ) ))
Какие события происходят в системе при вычислении интерпретатором формы ((lambda (x y) (cons x y)) 'A 'B):
Какой из результатов вычисления формы (grp '((1 2) 3)) является верным. Функция (grp x) имеет определение (defun grp (x)(list (car x) (list (cadr x) (caddr x))))
Какие аргументы имеет специальная функция Defun (порядок следования аргументов должен быть показан правильно):
Являются ли эквивалентными записи точечной и списочной нотаций (A . B . C) и (A B C) соответственно:
Какая из последовательностей действий на первом шаге рекурсии, выполняемых интерпретатором при вычислении выражения (Факториал 1) , где факториал: (DEFUN Факториал (LAMBDA (N) (COND ((= N 0 ) 1 ) (T ( * N (Факториал (- N 1 ))) ) ) ) )
является верной:
Как правильно будет выглядеть эквивалент условного выражения языка Паскаль"if ((a + b) = 3) then print (a) else print (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):
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение (DEFUN append (x y) (COND ((null x) y) ((QUOTE T) (CONS (CAR x) (append (CDR x) y) ) )) ) ,
при интерпретации выражений с указанными ниже аргументами:
В каком случае правильно указано количество обращений к последней ветви ((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)) ) )
при интерпретации выражений с указанными ниже аргументами:
В каком случае правильно указано число вызовов функция 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)) ) )))
при интерпретации выражений с указанными ниже аргументами:
Какое из приведенных ниже выражений является примером правильного использования функционала map-el: (defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )
Какая из форм, представленных ниже, описывает оператор присваивания set, где Alist – ассоциативный список системы:
В каком случае правильно указано число вызовов функция 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)) ) )))
при интерпретации выражений с указанными ниже аргументами:
Какой из результатов вызова функционала map-ap, аргументами которого выступают следующие функции и списки, является правильным: (defun map-ap (fn ll) (cond (ll (append (fn (car ll) ) (map-ap fn (cdr ll) )) ) ) )
В каких случаях правильно указан результат выполнения функции member, имеющей определение (DEFUN member (x y) (COND ((null y) (QUOTE Nil)) ((equal x (CAR y)) (QUOTE T)) ((QUOTE T) (member x (CDR y)) ))
при интерпретации выражений с указанными ниже аргументами:
В каких случаях правильно указан результат применения функции 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)))) ))
к следующим аргументам:
Какой из результатов вызова функционала map-comp, аргументами которого выступают следующие функции и списки, является правильным: (defun map-comp (fn al vl) (cond (al (cons (fn (car al) (car vl)) (map-comp (cdr al) (cdr vl))) ) ) )
Какая информация содержится в ячейке, входящей в состав древовидного списка, в котором содержаться S-выражения в памяти:
Какой из результатов вычисления формы (pgrp '((1 2) 3 4)) является верным. Функция (pgrp x) имеет определение (defun pgrp (x)(rplacd (rplaca (cdr x) (cons (cadr x) (cddr x))) NIL))
Какой из результатов может быть получен при вычислении формы (eq '(Nil) (atom '(T))), и укажите причину, почему это так:
Какое из приведенных ниже выражений является примером правильного использования функционала map-el: (defun map-el (fn xl) (cond (xl (cons (funcall fn (car xl) ) (map-el fn (cdr xl)) ) ) ) )
Являются ли приведенные ниже описания функции взятия второго элемента (необязательно атома) списка семантически и синтаксически верными. Указать верное описание:
В каких случаях правильно указано число вызовов функции Cons (в определении append) при вызове функции append, имеющей определение (DEFUN append (x y) (COND ((null x) y) ((QUOTE T) (CONS (CAR x) (append (CDR x) y) ) )) ) ,
при интерпретации выражений с указанными ниже аргументами: