Разница между ‘ и function

Просматривая чужие коды, можно наткнуться на странное применение ' и function - их ставят "как бог на душу положит". Вот примеры вполне адекватных кодов:

1
(mapcar '1+ '(1 2 3))
1
(mapcar (function 1+) '(1 2 3))


Оба вызова возвращают один и тот же результат. При этом первый выглядит более компактным. Зачем же использовать второй? Причин всего две:
1. Отладка. Это в приведенных примерах все просто. В реальной жизни применяемые функции могут быть весьма длинными. Если использовать ', то установить точку останова внутри вызываемой функции невозможно.
2. Компиляция. Как известно, код lisp можно скомпилировать в fas или vlx. Так вот, если в исходном коде идет применение ', то он будет немного медленнее кода с применением function.

Размещено в Код LISP · Метки:



Комментарии

Есть 1 комментарий к “Разница между ‘ и function”

Трэкбэки

Узнайте, что другие говорят про эту заметку...
  1. [...] описанная разница между function и ‘ неправда? Или просто использование function в настолько [...]



Поделитесь своим мнением


Я не робот.