>>49553На тебе лиспомакрос на схеме, который делает синонимы, только чуть-чуть переделать для cl:
(define-macro (synonym old new) `(define-macro (,new . args) `(,',old ,@args)))
Мне не приходилось писать макросы больше одного уровня, поэтому про то, как прокинуть unquote на уровень вверх, я не вполне знаю. И не совсем понимаю, как у меня заработал кусок с ,',old .Подозреваю, что внутренний quasiquote берёт первый unquote для себя, а про то, что там внутри, особо не интересуется; ну и quasiquote, как только видит quasiquote внутри, перестаёт им заниматься и уходит в себя. Я даже описать это не могу.
> но перейти пока не удалось
Вряд ли удастся именно
перейти раз и навсегда. Поле непаханое. Батареек кот наплакал. Хотя ты можешь играть с FFI и скриптовать свою байтоеблю. FFI у некоторых реализаций относительно простой.
> Вообще изначально байтоёб
Я вот хочу стать байтоёбом. Но надо много читать и много практиковаться. Это трудно.
> байтоёбский императивный, но лисп
Это смотря что ты назовёшь лиспом. Где-то был транслятор из s-выражений в C++. Ты сам такой можешь сделать. Ещё где-то были ассемблеры на s-выражениях.
Можешь залезть в кишки и добавить DSL для байтоебли, ты же байтоёб, что тебе стоит. Или на макросах и массивах сделать пародию на байтоеблю, раскрывающуюся в лиспокод. Это, конечно же, труднее. У меня были больные мысли на эту тему.
Можешь и свой собственный язык на s-выражениях сделать. Но не сделаешь.
А так-то байтоёбский лисп по сути оксюморон, если не копать.
> И define-ы вроде не везде возможно нашлёпать, тот же loop, который ты привёл.
loop обернуть можно, если потыкать макрос, который запиливает макрос synonym. Просто пройтись в лупе по аргументам макроса и, если видно такое-то слово, заменять его на исходное. Ни в какие
>>49554 кишки лезть не надо. И у тебя там, если у тебя SBCL, всё-таки там компилятор внутри.
>>49555> Да, насчёт хипстеров, мне современный кодинг вообще абсурдом кажется, единственный лиспер с которым общался ирл был имаксер, вот по нему и сужу. Пытался потом на имакс-лиспе что-то поковырять, но зачем мне мегабайты имакса в довесок к интерпретатору?
> мне современный кодинг вообще абсурдом кажется
С какой стороны?
Ты общаешься с ньюфагом емакса. Задавай свои ответы. На елиспе ковырялся только конфиг.
Вообще, я не знаю, как емаксера с дефолтным емаксом можно только за емакс назвать хипстером. Доля исчезающе маленькая, хайпа нет, основная масса всё равно сидит на IDE, изредка поглядывая в vim и nano.
> но зачем мне мегабайты имакса в довесок к интерпретатору?
Затем, чтобы код вызывать из емакса, очевидно же, это же dsl. Без емакса интерпретаторы елиспа таки есть, только смысла в них нет.
Нет, ты можешь, конечно, сделать из емакса веб-сервис…