cl-user,
CU>Ага, меня в лиспе больше всего раздражает шрифт, который стоит по-умолчанию в просмотрщике винрара — из-за него действительно блевануть хочется при виде лиспового кода
(offtop (? FAR))
LCR>>К счастью находятся особо любознательные ...
CU>К счастью ли?
Вопрос не совсем технического плана...
CU> А может просто чуть-чуть посмотреть по сторонам, почитать доку и понять, что ридер (reader) полностью в твоих руках и ты можешь творить с ним что-угодно (причём прямо в теле модуля/файла/блока/функции, где это особенное поведение ридера необходимо — привет немерлистам!)
CU>Единственная "священная корова" — код есть список, т.е. просто список. И как бы ты не переопределял readtable, задание и обработка списка должны оставаться такими-же простыми, как и с помощью скобок. Иначе макры (кодогенерация) летят ко всем чертям, а следом и ты со своим "изобретением".
CU>И остаётся вопрос (тот-же ,что и к немерлистам) — получив body (блок кода) — я могу его расчленить, проанализировать отдельные части, и собрать из разных частей другой (новый — как угодно) блок кода?
CU>Ни дока по дилану, ни по немерле на дали положительного ответа на данный вопрос (я подчёркиваю — я не говорю, что это не возможно — я просто не знаю — возможно ли это
)
Ну цитировать можно не зная точного AST.
define macro with-mutex
{ with-mutex (?mutex:expression) ?code:body end }
=> { let mutex = ?mutex;
check-error(pthread-mutex-lock(mutex));
block ()
?code
cleanup
check-error(pthread-mutex-unlock(mutex));
end block; }
end with-mutex;
;;; здесь будет подставлен макрос с параметрами mutex и телом ниже
with-mutex (mutex)
format(*standard-output*, "The mutex is locked.\n");
end;
Аналогичным образом можно и в Немерле. Но вот именно так, как ты говоришь (расчленить, потом собрать) я думаю лучше спросить у немерлистов. Да, и хорошо бы знать, что за расчленение-сборка нужна?
CU>Обзор того, _что_ и _как_ не следует делать
Не совсем так. Я старался сохранить позицию стороннего наблюдателя (правда не очень получилось). Например, Пол Грэхэм в Arc вводит некоторые изменения синтаксиса. И для себя ты можешь творить что угодно. И редакторы... Есть новая идея? Покажи! Так что не всё так однозначно.
LCR>>Наконец последний, третий подход в борьбе со скобками — это борьба со стереотипами новичков и профанацией.
CU>Я бы сказал — единственный
Повторюсь, не всё так однозначно.
LCR>>(Неприятная черта в Лисп-коммьюнити (может только на c.l.l.) — просто зашкаливающая "доброжелательность" к новичкам. Можно конечно понять, но всё равно не очень ...)
CU>А вот этого не надо. Нормально там относятся (если не прадлагать убрать скобки из лиспа). В крайнем случае промолчат. Но если новичёк в лиспе — "гуру" в другом языке и сразу начинает учить всё лисп-сообщество как им жить дальше — какую реакцию вы ожидаете?
Что угодно, но не обидные издёвки (подозреваю, что автор Lispin просто не ожидал таких наездов):
Who are you? Some kind of comedian?
I love how it says "Lisp without parentheses" yet the example contains several
of these damned things
Nice post, btw: I laughed after just reading the
title.
All in all, this project has less value than a single useful Lisp macro.
the friendly community prevents Bill from doing stupid things, spending his
time on a bullshit. if he wants a better readability, he'd better write an
editor.
Did I say "user"? PWUAHAHHAHAHAHHAAH.... I meant self-important
dilettante. "Hey, guys! Just found Lisp! Love it! Here is how we can fix
it...your thoughts?" PWUAUUAUAUAUAHAHAHAHH... I slay myself.
Последний меня вообще порадовал.
LCR>>Суть сводится к следующему: профессионалы глядя на S-выражение видят сразу дерево, поэтому они не видят скобок!
CU>Я бы заменил "не видят" на "не замечают (пока парность не нарушается, но об этом заботится редактор, компилятор ругается)"
Ну хорошо, пусть так. +1
CU>Продолжение будет? 
Будет день — будет пища.