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

UptoLike

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

6
Списки заключаются в круглые скобки, элементы списков разделяются пробелами.
Список начинается с открывающей скобки и заканчивается закрывающей скобкой.
Например:
(a b (c d) e) - список, состоящий из трех атомов и одного подсписка
То есть, списокмногоуровневая (иерархическая) структура данных, в которой
открывающие и закрывающие скобки находятся в строгом соответствии.
Примеры списков:
(+ 2 3) - список из трех элементов
(((((первый) 2) третий) 4) 5) - список из двух элементов
Пустой список (NIL)
Список, в котором нет ни одного элемента, называется «пустым» и обозначается
() или символом NIL. Пустой списокне то же самое, что «ничего». Он похож на нуль
в арифметике. NIL может также быть элементом других списков.
Например:
NIL - то же, что и ()
(NIL) - список, состоящий из атома NIL
(()) - то же, что и (NIL)
((())) - то же, что и ((NIL))
(NIL ()) - список из двух пустых списков
Атомы и списки называются символьными выражениями (s-выражениями).
Префиксная нотация
Как правило, в алгоритмических языках используется такой способ записи
вызова функции:
f(x, y)
Однако в LISP используется немного другой, возможно кажущийся
непривычным, способ записи:
(f x y)
То есть, как название функции, так и ее аргументы записываются в виде списка,
первым элементом которого является название функции.
Арифметические функции
Арифметические операции над числами представлены как функции «+», «-», «/»,
«*».
(+ 5 2) - 5+2=7
(- 10 1) - 10-1=9
(/ 20 2) - 20/2=10
(* 2 3) - 2*3=6
(* (+ 1 2) (* 1 (+ 2 3))) - (1+2)*(1*(2+3))=15
QUOTE
QUOTE блокирует вычисление выражения. В ряде случаев нужно не вычислять
значение выражения, а оперировать с ним как с списком. Тогда и используется этот
предикат. Имеется сокращенный вариант записи этого предиката – «’». То есть:
выражение Ù (QUOTE выражение).
Примеры:
[0] (+ 2 3)
5
                                         6

Списки заключаются в круглые скобки, элементы списков разделяются пробелами.
Список начинается с открывающей скобки и заканчивается закрывающей скобкой.
        Например:
(a b (c d) e) - список, состоящий из трех атомов и одного подсписка
        То есть, список – многоуровневая (иерархическая) структура данных, в которой
открывающие и закрывающие скобки находятся в строгом соответствии.
        Примеры списков:
(+ 2 3)        - список из трех элементов
(((((первый) 2) третий) 4) 5)       - список из двух элементов

Пустой список (NIL)
       Список, в котором нет ни одного элемента, называется «пустым» и обозначается
() или символом NIL. Пустой список – не то же самое, что «ничего». Он похож на нуль
в арифметике. NIL может также быть элементом других списков.
       Например:
NIL           - то же, что и ()
(NIL) - список, состоящий из атома NIL
(())          - то же, что и (NIL)
((())) - то же, что и ((NIL))
(NIL ())      - список из двух пустых списков
Атомы и списки называются символьными выражениями (s-выражениями).

Префиксная нотация
        Как правило, в алгоритмических языках используется такой способ записи
вызова функции:
f(x, y)
        Однако в LISP используется немного другой, возможно кажущийся
непривычным, способ записи:
(f x y)
        То есть, как название функции, так и ее аргументы записываются в виде списка,
первым элементом которого является название функции.

Арифметические функции
     Арифметические операции над числами представлены как функции «+», «-», «/»,
«*».
     (+ 5 2)                   - 5+2=7
     (- 10 1)                  - 10-1=9
     (/ 20 2)                  - 20/2=10
     (* 2 3)                   - 2*3=6
     (* (+ 1 2) (* 1 (+ 2 3))) - (1+2)*(1*(2+3))=15

QUOTE
      QUOTE блокирует вычисление выражения. В ряде случаев нужно не вычислять
значение выражения, а оперировать с ним как с списком. Тогда и используется этот
предикат. Имеется сокращенный вариант записи этого предиката – «’». То есть:
      выражение Ù (QUOTE выражение).
      Примеры:
                                     [0] (+ 2 3)
                                     5