Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше
Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике
2.12.3. Другие функции Лиспа
Предикаты (принимают значения Т или NIL)
-выражение)) Т, если и только если значение выражения есть атом или имя функции, иначе
Например:
, если и только если значение выражения есть иначе
Например:
-выражение , если и только если значения обоих выражений равны.
-выражение если и только если значения обоих выражений равны.
(выражение если и только если значения обоих выражений одинаковы и представляют один и тот же физический список (т. е. размещены в одном и том же месте памяти).
Например:
тогда как
так как список (А В) создан дважды, в двух различных местах.
указано некоторое число аргументов, которые вычислены слева направо; если при этом встречено возвращается значение иначе значение последнего выражения.
-выражение); в отличие от предыдущего, если при просмотре встречается значение, отличающееся от оно возвращается, иначе NIL.
-выражение)) - Т, рели и только если значение выражения есть
Функции
Выбор между несколькими возможностями осуществляется в Лиспе с помощью функции которая записывается в виде
Символы указывают на выражения, относящиеся к проверяемым условиям, а символы указывают на выражения, относящиеся к результатам. Значения выражений вычисляются в порядке возрастания индексов. При этом, как только встречается какое-то выражение со значением, отличающимся от функция вычисляет соответствующее значение и возвращает значение последнего выражения из Если все имеют значение оно является окончательным значением Некоторые могут отсутствовать. В этом случае, если является первым значение которого отличается от возвращается значение
Функции построения списков
Две функции и так же, как и функция формируют списки. Функция определяется следующим образом: список список — список, образованный из списков из которых удалены скобки первого уровня. Например:
Функция определяется следующим образом:
В данном случае скобки остаются. Кроме того, в отличие от функции эта функция позволяет использовать в качестве аргументов также и атомы, например:
В следующих разделах будут приведены синтаксические определения еще нескольких функций, позволяющих строить списки в языке Лисп.
функция LENGTH:
-выражение число братьев” первого уровня в -выражений. Например:
Функция
-выражение из “братьев” первого уровня исходного выражения в обратном порядке. Например:
Функция (функция подстановки):
-выражение -выражение -выражение - результат замещения выражением 1 всех вхождений выражения 2 в выражение 3. При этом выражение 2 должно быть атомом. Например:
Функция MEMBER:
(MEMBER (атом) если и только если исходный атом не появляется в качестве “брата” первого уровня в исходном списке. Например:
Функция
(список) -выражение))замещает CAR списка на указанное выражение. Например:
Следует отметить, что функция производит такое же действие и на исходный список: .
Функция является симметричной по отношению к функции Она воздействует на CDR своего первого аргумента.
Числовые функции
При записи числовых функций всегда используется форма префиксной польской записи. Ниже приводятся числовые функции, смысл которых очевиден.
функция может иметь несколько аргумейтов
так как аргумент, являющийся выражением, имеет значение 6, которое является атомом.
Ниже приводятся три предиката с числовыми аргументами.
Функция REMAINDER определяется так:
остаток от деления на
Если в приведенных выше выражениях не являются числовыми, выдается сообщение об ошибке. В Лиспе предусмотрена возможность проверки того, является ли данное выражение числом:
, если и только если значение выражения является числом.
Итерации: MAPCAR и APPLY
— выражение, образованное применением первого аргумента (который должен быть функцией, известной системе) ко всем элементам заданного -выражения. Например: .
Исходная функция должна быть функцией одного аргумента, чтобы была возможность ее соотнесения с
первого, уровня исходного выражения.
(функция) -выражение).) здесь исходная функция применяется к указанному выражению. Например:
В последнем примере необходимо использовать указанную функцию присваивания, так как без нее проверка функции даст на выходе ошибку, поскольку требует числового аргумента.
Две описанные выше функции, называемые итерациями, позволяют элегантно и просто переносить действия любых функций на элементы списка.