Разница между ‘ и function
Просматривая чужие коды, можно наткнуться на странное применение ' и function - их ставят "как бог на душу положит". Вот примеры вполне адекватных кодов:
1 | (mapcar '1+ '(1 2 3)) |
1 | (mapcar (function 1+) '(1 2 3)) |
Оба вызова возвращают один и тот же результат. При этом первый выглядит более компактным. Зачем же использовать второй? Причин всего две:
1. Отладка. Это в приведенных примерах все просто. В реальной жизни применяемые функции могут быть весьма длинными. Если использовать ', то установить точку останова внутри вызываемой функции невозможно.
2. Компиляция. Как известно, код lisp можно скомпилировать в fas или vlx. Так вот, если в исходном коде идет применение ', то он будет немного медленнее кода с применением function.
Комментарии
Есть 1 комментарий к “Разница между ‘ и function”Трэкбэки
Узнайте, что другие говорят про эту заметку...[...] описанная разница между function и ‘ неправда? Или просто использование function в настолько [...]