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

UptoLike

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

16
(А)
[1] (cons 'а nil)
(А)
[2] (list 'а 'b)
(А B)
[3] (cons 'а (cons 'b nil))
(А B)
[4] (list 'а 'b 'с)
(А B С)
[5] (cons 'а (cons 'b (cons 'с nil)))
(А B С)
ФУНКЦИИ СВЯЗЫВАНИЯ ПЕРЕМЕННЫХ СО ЗНАЧЕНИЯМИ (SET!)
Если мы хотим связать символ, список с некоторой переменной, то эту
переменную в Лисп-Микро необходимо предварительно определить с помощью
функции DEFINE, а затем связать со значением SET!
[0] (define х)
Х
[1] (set! х '(+ 3 5))
(+ 3 5)
[2] х
(+ 3 5)
[3] (set! х (+ 3 5))
8
Например, мы хотим, чтобы символ ФУНКЦИИ обозначал базовые функции
Лисп-Микро:
[4] (define функции)
ФУНКЦИИ
[5] (set! функции '(car cdr cons atom? eq?))
(CAR CDR CONS ATOM? EQ?)
Теперь между символом ФУНКЦИИ и значением (CAR CDR CONS АТОМ?
EQ?) образована связь, которая действительна до окончания работы, если, конечно,
этому имени функцией SET! не будет присвоено новое значение. После присваивания
интерпретатор уже может вычислить значение символа ФУНКЦИИ:
[6] функции
(CAR CDR CONS ATOM? EQ?)
                                               16

       (А)
       [1] (cons 'а nil)
       (А)
       [2] (list 'а 'b)
       (А B)
       [3] (cons 'а (cons 'b nil))
       (А B)
       [4] (list 'а 'b 'с)
       (А B С)
       [5] (cons 'а (cons 'b (cons 'с nil)))
       (А B С)

     ФУНКЦИИ СВЯЗЫВАНИЯ ПЕРЕМЕННЫХ СО ЗНАЧЕНИЯМИ (SET!)

      Если мы хотим связать символ, список с некоторой переменной, то эту
переменную в Лисп-Микро необходимо предварительно определить с помощью
функции DEFINE, а затем связать со значением SET!
       [0] (define х)
       Х
       [1] (set! х '(+ 3 5))
       (+ 3 5)
       [2] х
       (+ 3 5)
       [3] (set! х (+ 3 5))
       8


     Например, мы хотим, чтобы символ ФУНКЦИИ обозначал базовые функции
Лисп-Микро:


       [4] (define функции)
       ФУНКЦИИ
       [5] (set! функции '(car cdr cons atom? eq?))
       (CAR CDR CONS ATOM? EQ?)
      Теперь между символом ФУНКЦИИ и значением (CAR CDR CONS АТОМ?
EQ?) образована связь, которая действительна до окончания работы, если, конечно,
этому имени функцией SET! не будет присвоено новое значение. После присваивания
интерпретатор уже может вычислить значение символа ФУНКЦИИ:


        [6] функции
       (CAR CDR CONS ATOM? EQ?)