Давайте попробуем написать на Лиспе… транслятор простого императивного языка. Нет-нет, я не ошибся – именно транслятор. Транслировать он будет в Лисп-код. А дальше этот код может быть выполнен Лисп-системой. Здесь бесценную услугу нам окажет то обстоятельство, что в Лиспе нет…
В заметке подробно рассматривается суть понятия "мемоизация" и разбирается работоспособная версия мемоизации произвольных функций Лиспа. Предполагается, что читатель знаком с Лиспом. Тем не менее, "тонкие места" разбираются достаточно подробно. Читать далее
Одно из известных преимуществ Лиспа над другими языками программирования состоит в том, что в Лиспе проще, чем где бы то ни было, реализуются различные новые механизмы, появляющиеся в современных языках программирования. Причин тому несколько: это и гомоиконность Лиспа (единая…
Создать абстракцию неких объектов на лиспе, это значит создать некий функциональный интерфейс обрабатывающий объекты данного типа. Нам необходима абстракция точки в двумерном пространстве, значит надо хранить две координаты. Для хранения двух значений в лиспе идеально подходит структура пары, создаваемая cons, на ней и будет базироваться первый вариант реализации точки. Читать далее