Реферат: ЛИСП
_(CAR ‘(a)) р a
_(CAR NIL) р NIL «Голова пустого списка - пустой список.»
Вызов функции CAR с аргументом (a b c d) без апострофа был бы проинтерпретирован как вызов функции «a» с аргументом «b c d», и было бы получено сообщение об ошибке.
Функция CAR имеет смысл только для аргументов, являющихся списками.
(CAR ‘a) р Error
Функция CDR - возвращает в качестве значения хвостовую часть списка, т. е. список, получаемый из исходного списка после удаления из него головного элемента:
(CDR список) р список
Функция CDR определена только для списков.
_(CDR ‘(a b c d)) р (b c d)
_(CDR ‘((a b) c d)) р (c d)
_(CDR ‘(a (b c d))) р ((b c d))
_(CDR ‘(a)) р NIL
_(CDR NIL) р NIL
_(CDR ‘a) р Error
Функция создания CONS.
Функция CONS строит новый список из переданных ей в качестве аргументов головы и хвоста.
(CONS голова хвост)
Для того чтобы можно было включить первый элемент функции CONS в качестве первого элемента значения второго аргумента этой функции, второй аргумент должен быть списком. Значением функции CONS всегда будет список:
(CONS s-выражение список) р список
_(CONS ‘a ‘(b c)) р (a b c)
_(CONS ‘(a b) ‘(c d)) р ((a b) c d)
_(CONS (+ 1 2) ‘(+ 3)) р (3 + 3)
_(CONS ‘(a b c) NIL) р ((a b c))
_(CONS NIL ‘(a b c)) р (NIL a b c)
Предикаты ATOM, EQ, EQL, EQUAL.
Предикат - функция, которая определяет, обладает ли аргумент определенным свойством, и возвращает в качестве значения NIL или T.
Предикат ATOM - проверяет, является ли аргумент атомом:
(ATOM s - выражение)
Значением вызова ATOM будет T, если аргументом является атом, и NIL - в противном случае.