Micro Lisp. Основные понятия, структуры и функции. Яшин Л.З. - 30 стр.

UptoLike

Составители: 

30
Задания для самостоятельной работы к разделу «Краткая справка из теории»
1. Сколько элементов самого верхнего уровня в следующих списках:
a. ((1 2 3))
b. ((a b) c (d e))
c. (a ((())) nil nil)
d. ((((a (b (c d) e) f) g) h ((i (j) k) l) m) n)
2. Замените в следующих списках все пустые списки на символ пустого списка
NIL:
a. (())
b. (() (()))
c. ((() (() (())) ()))
3. Чем отличаются:
a. атомы и символы
b. переменные и символы
c. выражения и списки
4. Как можно записать в виде списков выражения логики высказываний,
образованные с помощью логических операций NOT, OR, AND, =>, <=>.
Задания для самостоятельной работы к разделу «ПРИМИТИВЫ языка Micro-Lisp»
1. Перечислите базовые функции ипредикаты языка LISP. Каковы типы их
агрументов, какие значения они возвращают в качестве результата?
2. Запишите последовательности вызовов CAR и CDR, выделяющие из
приведенных ниже списков символ «target». Упростите эти вызовы при помощи
C…R.
a. (1 2 target 3 4)
b. ((1) (2 target) (3 (4)))
c. ((1 (2 (3 4 target))))
3. Вычислите и проверьте в интерпретаторе значения следующих выражений:
a. (cons nil ‘(суть пустой список))
b. (cons nil nil)
c. (cons ‘(nil) ‘(nil))
d. (cons (car ‘(a b)) (cdr ‘(a b)))
e. (car ‘(car (a b c))
f. (cdr (car (cdr ‘(a b c))))
g. (list (list ‘a ‘b) ‘(car (c d)))
4. Какие из следующих вызовов возвращают значение #T?
a. (atom? ‘(cdr nil))
b. (equal? ‘(a b) (cons ‘(a) ‘(b)))
c. (atom? (* 2 (+ 2 3)))
d. (null? (null? T))
e. (eq? nil (null? nil))
f. (equal? 2.0 2)
g. (= 2.0 2)
                                       30


Задания для самостоятельной работы к разделу «Краткая справка из теории»

   1. Сколько элементов самого верхнего уровня в следующих списках:
         a. ((1 2 3))
         b. ((a b) c (d e))
         c. (a ((())) nil nil)
         d. ((((a (b (c d) e) f) g) h ((i (j) k) l) m) n)
   2. Замените в следующих списках все пустые списки на символ пустого списка
      NIL:
         a. (())
         b. (() (()))
         c. ((() (() (())) ()))
   3. Чем отличаются:
         a. атомы и символы
         b. переменные и символы
         c. выражения и списки
   4. Как можно записать в виде списков выражения логики высказываний,
      образованные с помощью логических операций NOT, OR, AND, =>, <=>.

Задания для самостоятельной работы к разделу «ПРИМИТИВЫ языка Micro-Lisp»

   1. Перечислите базовые функции ипредикаты языка LISP. Каковы типы их
      агрументов, какие значения они возвращают в качестве результата?
   2. Запишите последовательности вызовов CAR и CDR, выделяющие из
      приведенных ниже списков символ «target». Упростите эти вызовы при помощи
      C…R.
         a. (1 2 target 3 4)
         b. ((1) (2 target) (3 (4)))
         c. ((1 (2 (3 4 target))))
   3. Вычислите и проверьте в интерпретаторе значения следующих выражений:
         a. (cons nil ‘(суть пустой список))
         b. (cons nil nil)
         c. (cons ‘(nil) ‘(nil))
         d. (cons (car ‘(a b)) (cdr ‘(a b)))
         e. (car ‘(car (a b c))
         f. (cdr (car (cdr ‘(a b c))))
         g. (list (list ‘a ‘b) ‘(car (c d)))
   4. Какие из следующих вызовов возвращают значение #T?
         a. (atom? ‘(cdr nil))
         b. (equal? ‘(a b) (cons ‘(a) ‘(b)))
         c. (atom? (* 2 (+ 2 3)))
         d. (null? (null? T))
         e. (eq? nil (null? nil))
         f. (equal? 2.0 2)
         g. (= 2.0 2)