Size: a a a

2019 September 13

DI

Dmitry Ignatiev in fprog_spb
В Common Lisp в единственном среди распространенных лиспов есть т.н. reader macros, это возможность перепрограммировать синтаксис языка на текстовом уровне, с помощью этого можно хоть в питон его превратить (и некоторые так делают)
источник

АГ

Александр Гранин in fprog_spb
А где сейчас тусуются лисперы?
источник

DI

Dmitry Ignatiev in fprog_spb
В барах, бывает
источник

VM

Vyacheslav Mikushev in fprog_spb
Dmitry Ignatiev
в целом, среди живых диалектов:

CL - практичный
Racket - ноучне
Clojure - хипстерский
А разве чистой схемой никто не пользуется? Я видел lambdanative и kawa. Вроде, на них пишут.
источник

YS

Yuriy Syrovetskiy in fprog_spb
Dmitry Ignatiev
В CL самая мощная макросистема, самое крутое ООП и обработка исключений, и самые производительные реализации. В Clojure - иммутабельность во все поля, много библиотек(за счет JVM), уродские recur и проч.(за счет JVM), простая интероперабельность с ClojureScript. Racket - это Scheme на стероидах - гигиенические макросы, продолжения, экспериментальные фичи.
по этому описанию похоже, что CL не нужен, самое интересное в Racket
источник

K

Kakadu in fprog_spb
Ну, хипстеризм кложуры согласуется с тем, что я вижу/слышу. А что на счёт так называемой chez schème от Дыбвига?
источник

PS

Peter Sovietov in fprog_spb
Dmitry Ignatiev
В Common Lisp в единственном среди распространенных лиспов есть т.н. reader macros, это возможность перепрограммировать синтаксис языка на текстовом уровне, с помощью этого можно хоть в питон его превратить (и некоторые так делают)
https://github.com/soegaard/minipascal Интересно, как же оно сделано...? ;)
источник

PS

Peter Sovietov in fprog_spb
Vyacheslav Mikushev
А разве чистой схемой никто не пользуется? Я видел lambdanative и kawa. Вроде, на них пишут.
Пишут, конечно, на чистой Scheme. Даже для микроконтроллеров :)
https://github.com/stamourv/picobit
источник

AP

Aleksei (astynax) Pirogov in fprog_spb
Вот да, для Racket куча мини-языков с не sexp-синтаксисиом
источник

AP

Aleksei (astynax) Pirogov in fprog_spb
Как-то же живут
источник

AP

Aleksei (astynax) Pirogov in fprog_spb
Даже Java своя есть — специально для HTDC написанная
источник

AP

Aleksei (astynax) Pirogov in fprog_spb
Не говоря уж про "хоть питон"
источник

Y

Yuuri in fprog_spb
Peter Sovietov
Common Lisp — самое заурядное, что есть в мире лиспов. Все интересное происходит в Scheme и еще более радикальных диалектах. Вот совсем недавний пример: http://www.dustmop.io/blog/2019/09/10/what-remains-technical-breakdown/
Офигенно, спасибо! У меня давно были мысли о хаскельном eDSL-чике для NESdev, а тут уже что нужно
источник

YS

Yuriy Syrovetskiy in fprog_spb
Yuuri
Офигенно, спасибо! У меня давно были мысли о хаскельном eDSL-чике для NESdev, а тут уже что нужно
не уверен, что подойдёт, но посмотрите на хаскельный пакет hedn
источник

Y

Yuuri in fprog_spb
Для чего?
источник

YS

Yuriy Syrovetskiy in fprog_spb
для создания своего DSL на s-выражениях
источник

Y

Yuuri in fprog_spb
Не, я хотел максимум из do-нотации выжать, да с тайпчеком
источник

Y

Yuuri in fprog_spb
Вот такие примерно штуки у меня тогда «компилировались» (для более игрушечного процессора)
testFunc2 = do
   x <- byte 21
   y <- byte 10
   bar <- fun $ \(a, b) -> do
       ret $ a * b
   z <- byte $ bar (x, y)

и goto на именованные метки был, благодаря RecursiveDo
источник

Y

Yuuri in fprog_spb
Но вообще это был в первую очередь скорее эксперимент по исследованию границ хаскельного синтаксиса, нежели практический инструмент 🌚
источник

AV

Alexander Vershilov in fprog_spb
нет синтаксиса - нет границ!
источник