НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

Приложение: некоторые основные функции Лиспа

Ниже идет перечень нескольких основных функций языка Лисп. В некоторых системах Лиспа какие-то функции могут иметь слегка отличный синтаксис, или обладать большей или меньшей областью применения. Арифметические функции например могут ограничиваться двумя аргументами. Если специально не оговорено, то аргументы должны быть предварительно оценены.

ABS

(ABS (число)) возвращает абсолютное значение числа.

ADD1

(ADD1 <число>) возвращает число плюс единица.

AND [343]

(AND <s-выражение 1> ... <s-выражение n>) возвращает NIL, если какое-либо из s-выражений есть NIL и возвращает <s-выражение n> в противном случае. Эта функция не оценивает аргументы, идущие за первым же аргументом, который есть NIL.

APPEND [315]

(APPEND <список 1> <список 2>) возвращает один список, элементами которого являются элементы двух списков, сведенных вместе.

APPLY [330]

(APPLY <функция> <список аргументов>) применяет данную функцию к аргументам, при этом функция задается так, как если бы она появилась в качестве первого элемента в списке. Функция может быть либо именем, либо LAMBDA-выражением.

ASSOC [431]

(ASSOC <атом> <a-список>) использует первый аргумент в качестве ключа и ищет вхождение этого ключа в a-список <ассоциативный список>, поставляемый в качестве второго аргумента. Значением функции ASSOC является весь элемент, CAR от которого совпадает с ключом. Если ключ не обнаруживается, то значением функции является NIL.

АТОМ [319]

(АТОМ <s-выражение>) возвращает Т, если s-выражение является атомом. В противном случае, возвращает NIL.

CAR [312]

(CAR <список>) возвращает первый элемент списка.

CDR [312]

(CDR <список>) возвращает этот список без первого элемента.

С-R, C--R, С-R, С-R [315]

Каждая из этих функций эквивалентна некоторой цепочке из CAR и CDR, получающейся в результате замены каждой черточки на А или D.

COND [322]

(COND <список 1> . . . <список n>) является функцией ветвления.

CONS [315]

(CONS <s-выражение> <список>) добавляет s-выражение к списку в качестве первого элемента.

DEFINE [323]

(DEFINE (<имя функции> <аргумент I> . . . <аргумент n>)

<тело>)

определяет функцию. Имя функции является возвращаемым значением, но это несущественно. Эта функция не оценивает своих аргументов.

DEFPROP

(DEFPROP <атом> <s-выражение> <имя свойства>) устанавливает данное s-выражение в качестве данного свойства атома. Эта функция не оценивает своих аргументов, в отличие от функции PUTPROP.

DELETE [310]

(DELETE <s-выражение> <список> <число>) удаляет вхождения s-выражения, которые появляются в качестве элементов заданного списка. Число удаляемых вхождений определяется третьим аргументом, если он присутствует. В противном случае удаляются все вхождения.

DIFFERENCE

(DIFFERENCE <число 1> . . . <число n> возвращает первое число за вычетом всех остальных.

DO

DO - это функция организации циклов, присутствует в некоторых реализациях Лиспа.

EQUAL [323]

(EQUAL <s-выражение 1> <s-выражение 2> возвращает Т, если эти s-выражения идентичны

EVAL [318]

(EVAL <s-выражение>) возвращает значение данного s-выражения (т. е. оценивает его).

EXPLODE [385]

(EXPLODE <атом>) превращает атом в список из отдельных символов, составляющих атом.

ЕХР

(ЕХР <число>) возводит е в степень, задаваемую указанным числом. Эта функция обычно отсутствует в реализациях Лиспа.

ЕХРТ

(ЕХРТ <число 1> <число 2>) возводит первое число в степень, указываемую вторым числом. Эта функция не является обычно доступной функцией в системе Лисп.

FUNCALL [360]

(FUNCALL <функция> <аргумент 1> . . . <аргумент n>) действует на аргументы данной функцией. Обычно используется тогда, когда имя функции создается в результате вычисления, а не задается программистом. В некотором смысле аналогична функции APPLY.

GET [339]

(GET <атом> <имя свойства>) возвращает значение указанного свойства, ассоциированного с данным атомом.

GO [340]

(GO <метка>) используется с функцией PROG.

GREATERP [321]

(GREATERP <число 1> . . . <число n>) возвращает Т, если все числа расположены в порядке убывания.

IMPLODE [385]

(IMPLODE <список одно символьных атомов>) составляет из символов атом и возвращает его.

LAMBDA [333]

(LAMBDA <список аргументов> <тело>) чем-то напоминает функцию DEFINE.

LAST

(LAST <список>) возвращает список, в котором все элементы, кроме последнего, отброшены.

LENGTH

(LENGTH <список>) возвращает число элементов в списке.

LESSP [321]

(LESSP <число 1> . . . <число n>) возвращает Т, если все числа расположены в возрастающем порядке.

LIST [321]

(LIST <s-выражение 1> . . . <s - выражение n>) возвращает список из n элементов, сконструированный из заданных аргументов.

MAPCAR [329]

(MAPCAR <описание функции> <аргументы>) применяет функцию к списку или спискам аргументов. Возвращает список результатов.

МАХ

(МАХ <число 1> ... <число n>) возвращает наибольшее число.

MEMBER [319]

(MEMBER <s-выражение> <список>) возвращает Т, если s-выражение равно некоторому элементу на верхнем уровне данного списка.

MIN

(MIN <число 1> . . . <число n>) возвращает наименьшее число.

MINU

(MINUS <число>) возвращает число с противоположным знаком.

MINUSP

(MINUSP <число>) возвращает Т, если число отрицательно.

NOT (319)

(NOT (s-выражение>) возвращает Т, если это s-выражение NIL, или NIL в противном случае. Эквивалентна функции NULL.

NULL [319]

(NULL <s-выражение>) возвращает Т, если s-выражение представляет собой пустой список, или NIL в противном случае. Эквивалентна функции NOT.

NUMBERP [320]

(NUMBERP <s-выражение>) возвращает Т, если s-выражение представляет собой число.

OR [343]

(OR <s-выражение 1> . . . <s-выражение n>) возвращает первое, не равное NIL, s-выражение. Если ни одно не отлично о NIL, то возвращается NIL. Выражения, идущие после первого, отличного от NIL не оцениваются.

PLUS

(PLUS <число 1> . . . <число n>) складывает все заданные числа.

PLUSP

(PLUSP <число>) возвращает Т, если это число положительное.

PRINC [377]

(PRINC <s-выражение>) подобна (PRINT <s-выражение>), но функция PRINT возвращает каретку перед печатью и делает пробел после печати.

PRINT [348]

(PRINT <s-выражение>) приводит к печати s-выражения. Значение всегда равно Т.

PROG [339]

Функция PROG является сложной. Смотри описание в тексте.

PUTPROP [339]

(PUTPROP <атом> <s-выражение> <имя свойства>) помещает s - выражение в качестве данного свойства атома.

QUOTE [4321

(QUOTE <s - выражение>) полностью эквивалентно записи s - выражение.

QUOTIENT

(QUOTIENT <число 1> <число n>) возвращает результат от деления первого числа на все остальные.

READ [349]

(READ> возвращает очередное s-выражение, набранное на терминале пользователем. Это s-выражение не оценивается.

REVERSE

(REVERSE <список>) обращает порядок элементов в данном списке. Заметьте, что это обращение затрагивает только верхний уровень.

RETURN [340]

(RETURN <s-выражение>) вызывает немедленное возвращение этого s-выражения в качестве значения той функции PROG, в которой оно встречается.

SET [317]

(SET <s-выражение 1> <s-выражение 2>) возвращает второе s-выражение. Первое s-выражение должно иметь в качестве значения атом, а значение этого атома становится значением второго s-выражения. Функция SET в некоторых системах может воспринимать более двух аргументов. См. SETQ.

SETQ [320]

(SETQ <атом> <s-выражение>) возвращает это s-выражение, но имеет важный побочный эффект, делая это s-выражение значением атома. Заметьте, что этот атом не оценивается. Функция SETQ в некоторых системах Лиспа может принимать более двух аргументов, в этом случае нечетным аргументам - атомам присваивается значение идущих за ними нечетных аргументов.

SQRT

(SQRT <число>) возвращает квадратный корень, извлеченный из данного числа.

SUB1

(SUB1 <число>) возвращает число, уменьшенное на единицу. SUBST [413]

(SUBST <s-выражение 1> <s-выражение 2> <s-выражение 3>) подставляет s-выражение 1 везде, где s-выражение 2 входит в s-выражение 3.

TERPRI [377]

(TERPRI) приводит к возврату каретки.

TIMES

(TIMES <число 1> . . . <число n>) возвращает произведение всех заданных чисел.

ZEROP [321]

(ZEROP <число>) возвращает Т, если число есть 0.

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь