Инструменты пользователя

Инструменты сайта


examination:flp:question22

Отличие в вычислениях предикатов LAMBDA и NLAMBDA в РС – Лиспе.

Конструкция NLAMBDA (реализованная только в 13-й редакции ядра), порождает анонимную функцию, но отличается от конструкции LAMBDA ) двумя моментами:

  • аргументы NLAMBDA не вычисляются;
  • NLAMBDA не порождает замыканий.
((nlambda (x y) (list x y)) (1 2 3) (4 5 6))

==> ((1 2 3) (4 5 6))

(nlambda (x y) (list x y))

EVFUN: Не найдена функция NLAMBDA
==> ERRSTATE

(lambda (x y) (list x y))

==> (CLOSURE (x y) ((LIST x y)) NIL)

Первый запуск показыает, что NLAMBDA задает анонимную функцию с невычисляемыми при вызове аргументами. Второй вызов, показывает, что NLAMBDA не порождает замыканий (в отличие от LAMBDA).

examination/flp/question22.txt · Последние изменения: 2014/01/15 08:17 (внешнее изменение)