Что до связывания - в лавровом лиспе помнится была функция function, которая собственно и занималась тем, что формировала замыкание. Что с точки зрения технической imho близкое к оптимальному решение вопроса и совместимости и удобства.
Современный Common Lisp по умолчанию нормальное замыкание делает уже, а для динамического вроде надо *special* писать или какую-то похожую жуть.
По удобству если вместо "lambda" надо написать "function", и ничего, кроме замыканий, не изменится - это здорово. Особенно если её потом можно будет вызывать без apply. Я лавровского ЛИСПа живьём не видел =).
Мне кажется, что дело ещё и в том, насколько сильно реализация сильно компилирует программу. Ибо искать всякий раз переменную по имени долго. А если хочешь быстро, то обеспечивать эту быстроту будет тоже долго, так что выгадать тут тяжело %). А лексическое замыкание реализуется в итоге проще и работает быстрее.
Самое смешное что "не вместо" - - "передать параметром" - function берет терм и делает для него замыкание
Я лавровского ЛИСПа живьём не видел =).
Его Васька курсе на втором где-то по книжке написал. Потом так и тянул до диплома.
ЗЫ: кстати очень замечательная была книжка - фактически подробная инструкция как написать реализацию Лиспа с детальным разбором возникающих технических моментов.
Причем с всякими тонкостями. Щас чего-то такого очень не хватает (на современном понятно уровне)
Comments 14
Как скажете :) "всегда"
Reply
Reply
)
)
)
ктож так лисп форматирует-то?
Reply
Сделал каноничнее. Один фиг, хуже не стало, но места меньше жрёт. Так что спасибо.
Reply
Reply
По удобству если вместо "lambda" надо написать "function", и ничего, кроме замыканий, не изменится - это здорово. Особенно если её потом можно будет вызывать без apply. Я лавровского ЛИСПа живьём не видел =).
Мне кажется, что дело ещё и в том, насколько сильно реализация сильно компилирует программу. Ибо искать всякий раз переменную по имени долго. А если хочешь быстро, то обеспечивать эту быстроту будет тоже долго, так что выгадать тут тяжело %). А лексическое замыкание реализуется в итоге проще и работает быстрее.
Reply
Я лавровского ЛИСПа живьём не видел =).
Его Васька курсе на втором где-то по книжке написал. Потом так и тянул до диплома.
ЗЫ: кстати очень замечательная была книжка - фактически подробная инструкция как написать реализацию Лиспа с детальным разбором возникающих технических моментов.
Причем с всякими тонкостями. Щас чего-то такого очень не хватает (на современном понятно уровне)
Reply
А, ну примерно как я сделал %).
За книжку кстати спасибо, надо будет почитать как-нибудь. Ваську не знаю...
Reply
Leave a comment