Главная / Программирование /
Введение в программирование на Лиспе / Тест 3
Введение в программирование на Лиспе - тест 3
Упражнение 1:
Номер 1
Что такое Атом:
Ответ:
 (1) это последовательность, состоящая из букв и цифр 
 (2) это последовательность, состоящая из букв и цифр, начинающаяся с буквы 
 (3) это последовательность, состоящая из букв и цифр, начинающаяся с цифры  
Номер 2
Информация в Лисп-системе представляется виде:
Ответ:
 (1) атомов 
 (2) символьных выражений(s-выражения) 
 (3) функций 
Номер 3
Что такое список:
Ответ:
 (1) последовательность атомов, разделенных запятыми, заключенная в скобки 
 (2) последовательность любых данных - списков и атомов, а также S-выражений, разделенных пробелами, заключенная в скобки 
 (3) последовательность строк, заключенных в скобки 
Упражнение 2:
Номер 1
Какие из представленных ниже форм представляет одноэлементный список в Лиспе:
Ответ:
 (1) ABC
 
 (2) (ABC)
 
 (3) (NIL ABC)
 
Номер 2
Какие из представленных ниже форм представляют одноэлементный список в Лиспе:
Ответ:
 (1) Nil
 
 (2) (Nil)
 
 (3) (NIL . NIL)
 
Номер 3
Какие из представленных ниже форм представляют одноэлементный список в Лиспе:
Ответ:
 (1) (Атом . Nil)
 
 (2) (Atom)
 
 (3) Atom
 
Упражнение 3:
Номер 1
Какие из перечисленных представлений являются несписочным S-выражением:
Ответ:
 (1) (A)
 
 (2) (A . B)
 
 (3) '(A)
 
Номер 2
Какие из перечисленных представлений являются несписочным S-выражением:
Ответ:
 (1) (Atom)
 
 (2) (1 . 3)
 
 (3) Atom
 
Номер 3
Какие из перечисленных представлений не являются списками:
Ответ:
 (1) Lisp
 
 (2) (Lisp)
 
 (3) ('Lisp)
 
 (4) (Lisp . Lisp)
 
Упражнение 4:
Номер 1
Какие из данных выражений представлены списками:
Ответ:
 (1) (1 . 2) 
 (2) 1 
 (3) (1 2) 
Номер 2
Какие из s-выражений являются списками?
Ответ:
 (1) (Nil . 1)
 
 (2) (1 T)
 
 (3) T . Nil
 
 (4) (ab123)
 
Номер 3
Какие из данных выражений представлены списками:
Ответ:
 (1) (())
 
 (2) (Nil . Nil)
 
 (3) A
 
 (4) ('A 'B)
 
Упражнение 5:
Номер 1
Вычислимо ли выражение (EQ (car '(A)) (cdr'(B)))
, если да, то какой ответ является верным:
Ответ:
 (1) нет, не вычислимо 
 (2) да, ответ Nil
 
 (3) да, ответ True
 
Номер 2
Вычислимо ли выражение (EQ (car '(())) (cdr'(T . Nil)))
, если да, то какой ответ является верным:
Ответ:
 (1) нет, не вычислимо 
 (2) да, ответ False
 
 (3) да, ответ T
 
Номер 3
Какой из результатов может быть получен при вычислении формы (eq '(Nil) (atom '(T)))
, и укажите причину, почему это так:
Ответ:
 (1) сообщение об ошибке, т.к. '(nil)
это список 
 (2) T
, т.к. предикат atom выдаст значении Nil
 
 (3) T
, т.к. '(Nil)
и '(T)
являются атомами 
 (4) Nil
, т.к. форма (eq '(Nil) (atom '(T)))
сведется к вычислению (eq '(Nil) Nil)
 
 (5) Nil
, т.к. форма сведется к вычислению (EQ Nil T)
 
Упражнение 6:
Номер 1
Какое из значений может быть получено при вычислении формы (cdr '( a (b (c)) d)):
Ответ:
 (1) (b (c))
 
 (2) (d)
 
 (3) ((b (c)) d)
 
Номер 2
Какое из значений может быть получено вычислением формы (cdr '(( a b) c d)):
Ответ:
 (1) (с d)
 
 (2) (d)
 
 (3) (b c d)
 
Номер 3
Какое из значений можно получить, вычислив форму (cdr '( a (b c) d)):
Ответ:
 (1) (b c)
 
 (2) (a b c d)
 
 (3) ((b c) d)
 
Упражнение 7:
Номер 1
Какой из списков правильно представляет S-выражение (точечную нотацию) ((A . (B . C) ) . (D . (E . Nil))):
Ответ:
 (1) ((A B . C) . (D E))
 
 (2) ((A (B C)) (D E))
 
 (3) ((A (B C)) (D . E))
 
Номер 2
Укажите эквивалентную запись точеной нотации записи списочной нотации (A B (C) D)
Ответ:
 (1) (A . (B . (C . Nil) . D) )
 
 (2) (A . (B . ((C . Nil)) . D) )
 
 (3) (A . (B . ((C . Nil) . (D . Nil))))
 
Номер 3
Являются ли эквивалентными записи точечной и списочной нотаций (A . B . C)
и (A B C)
соответственно:
Ответ:
 (1) да 
 (2) нет, эквивалентными является записи (A . B . C)
и (A (B C))
 
 (3) нет, эквивалентными является записи (A . (B . C))
и (A B C)
 
 (4) нет, эквивалентными являются записи (A . (B . (C . Nil)))
и (A B C)
 
Упражнение 8:
Номер 1
Какие из перечисленных ниже форм вычислимы (не будет сообщения об ошибке):
Ответ:
 (1) (caddr '(a b с))
 
 (2) (caaadr '(a (b c)))
 
 (3) (cdddr '(a b с))
 
Номер 2
Какие из перечисленных ниже выражений вычислимы (не будет сообщения об ошибке):
Ответ:
 (1) (caaaaaar '(a b с))
 
 (2) (caadr '(a (b c)))
 
 (3) (cdar '(a (b)))
 
Номер 3
Каким образом можно получить элемент 'e
списка ((a b cd) ((e f) g)):
Ответ:
 (1) (cadr 'выражение)
 
 (2) (caddr выражение)
 
 (3) (caaadr 'выражение)
 
 (4) (cdr (cdr (car (выражение))))
 
 (5) (car (car (car (cdr 'выражение))))
 
Упражнение 9:
Номер 1
Укажите правильный результат вычисления формы (Cons '(A) Nil):
Ответ:
 (1) пара элементов (A . Nil)
 
 (2) s-выражение ((Nil . Nil) . A)
 
 (3) одноэлементный список ((A))
 
Номер 2
Укажите правильный результат вычисления формы (Cons '(A) '(A)):
Ответ:
 (1) ((A) A)
 
 (2) (A . (A))
 
 (3) пара элементов (A . A)
 
Номер 3
Укажите правильный результат вычисления формы (Cons 'Nil '(A)):
Ответ:
 (1) (Nil . (Nil . A))
 
 (2) (Nil A)
 
 (3) пара элементов (A . Nil)
 
 (4) (Nil . A)
 
Упражнение 10:
Номер 1
Результатом выполнения функции CONS
над двумя атомами является:
Ответ:
 (1) атом 
 (2) список вида (Атом1 Атом2) 
 (3) бинарный узел вида (Атом1 . Атом2) 
Номер 2
Результатом выполнения функции CDR
над списком является:
Ответ:
 (1) последний элемент списка, элемент может быть списком 
 (2) первый элемент списка, элемент может быть списком 
 (3) элемент с номером, которые подается в качестве второго аргумента в виде числа 
 (4) часть списка без первого элемента (списка или атома) 
Номер 3
Результатом выполнения функции СAR
над списком является:
Ответ:
 (1) последний элемент списка, элемент может быть списком 
 (2) первый элемент списка, элемент может быть списком 
 (3) элемент с номером, которые подается в качестве второго аргумента в виде числа