Re[7]: Scheme to be split into two language
От: Аноним  
Дата: 30.08.09 01:21
Оценка:
А>>Таки defmacro реализуется в десяток строк на syntax-case.
M> Которого нет в стандарте.
Забавно беседовать о вкусе устриц с теми, кто их не только не пробовал, но даже не видел.

А>> Обратное неверно.

M> Нет. Я делал — ничего сложного.
Ну раз "ничего сложного", думаю pastebin выдержит — давайте-ка реализацию syntax-case на defmacro.

А>> И да, defmacro гораздо менее удобный и мощный, чем syntax-case

M> Не согласен. syntax-case — это излишества и чрезмерная декларативность там, где ей не место. Базовой макросистемой должна быть более простая и фундаментальная.
Более простая как раз syntax-case (и, что парадоксально, при этом более мощная). Она проще и при написании и при понимании уже написанного. Выше же приведен пример. Вы конечно можете сказать, что нечитаемость это только плюс (+15 к илитарности, ага), но вряд ли с Вами согласится кто-нибудь кроме таких же коммонлисперов, как Вы.

M> Благо, во всех нормальных Схемах define-macro имеется. Плохо то, что у него кривая семантика в связке с модулями — как правило нельзя воспользоваться макрой, определённой внутри модуля, в этом самом модуле.

Чьорт. Кривая. Нельзя воспользоваться. Вы таки открыли мне глаза. То, что делается едва ли не в каждом проекте на схеме "на самом деле" делать нельзя. Понабирают, блин, по объявлениям.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.