Реферат: ЛИСП

_(ATOM ‘(a b c)) р NIL

_(ATOM NIL) р T

_(ATOM ‘(NIL)) р NIL


Предикат EQ сравнивает два символа и возвращает значение T, если они идентичны, в противном случае - NIL. С помощью EQ сравнивают только символы или константы T и NIL.


_(EQ ‘a ‘b) р NIL

_(EQ ‘a (CAR ‘(a b c))) р T

_(EQ NIL ()) р T


Предикат EQL работает так же как и EQ, но дополнительно позволяет сравнивать однотипные числа.


_(EQL 2 2) р T

_(EQL 2.0 2.0) р T

_(EQL 2 2.0) р NIL


Для сравнения чисел различных типов используют предикат «=». Значением предиката «=» является T в случае равенства чисел независимо от их типов и внешнего вида записи.


(= 2 2.0) р T


Предикат EQUAL проверяет идентичность записей. Он работает как EQL , но дополнительно проверяет одинаковость двух списков. Если внешняя структура двух лисповских объектов одинакова, то результатом EQUAL будет T.


_(EQUAL ‘a ‘a) р T

_(EQUAL ‘(a b c) ‘(a b c)) р T

_(EQUAL ‘(a b c) ‘(CONS ‘a ‘(b c))) р T

_(EQUAL 1.0 1) р NIL


Функция NULL проверяет на пустой список.


_(NULL ‘()) р T


Вложенные вызовы CAR и CDR.

Комбинации вызовов CAR и CDR образуют уходящие в глубину списка обращения, в Лиспе для этого используется более короткая запись. Желаемую комбинацию вызовов CAR и CDR можно записать в виде одного вызова функции:

(C...R список )


Вместо многоточия записывается нужная комбинация из букв A и D (для CAR и CDR соответственно). В один вызов можно объединять не более четырех функций CAR и CDR.

(CADAR x) у (CAR (CDR (CAR x)))


_(CDDAR ‘((a b c d) e)) р (c d)

_(CDDR ‘(k l m)) р (M)


Функция LIST - создает список из элементов. Она возвращает в качестве своего значения список из значений аргументов. Количество аргументов произвольно.


_(LIST ‘a ‘b ‘c) р (a b c)

К-во Просмотров: 680
Бесплатно скачать Реферат: ЛИСП