2.12.4 Лямбда-функция. Определения и свойства
Определение лямбда-функции
Лямбда-запись, предложенная Черчем в 1930 г., позволяет в Лиспе локально использовать какую-либо функцию, не давая ей собственного имени. Лямбда-функция определяется следующим образом:
-выражение (-выражение 2)) значение (-выражения 1), в котором все вхождения X замещены значениями -выражения где X — переменная, S-выражение 1 — тело лямбда-функции, S-выражение 2 — аргумент.
Примеры использования лямбда-функций:
Отметим, что во втором примере обязательным является использование апострофа перед лямбда-функцией.
Свойства, связанные с атомами. Функции PUTPROP и GET
Таблицы и индексы не имеют смысла в языке Лисп. Чтобы говорить о некоем свойстве, связанном с каким-то объектом, и о его значении, используют функцию
Эта функция “связывает” свойство, выраженное именем атома 2, с объектом, представленным атомом 1, и с конкретными значениями свойства, представленными в исходном списке. Например:
В этом примере рассматриваемая функция физически связывает (с помощью указателей) объект ПЬЕР через свойство ДЕТИ со значениями этого свойства, а именно: детьми Жаном и Жаком.
Чтобы узнать, обладает ли объект данным свойством, используется функция
задаваемого атомом 2 в точке, определяемой атомом 1, если оно существует; иначе Например: