Size: a a a

2021 March 06

AK

Andrey Kutejko in Lisp Forever
мне кажется, польза от reader macro сильно преувеличена. Есть наверное всего пара-тройка достойных примеров их применения. В голову приходит https://edicl.github.io/cl-interpol/
источник

DE

Denis Ermolenko in Lisp Forever
Ну тут уже от фантазии сильно зависит и какой DSL строится в итоге. Но сама суть в том что CL не ограничивает во всяких фантазиях и извращениях
источник

a

akater in Lisp Forever
Pavel
Не хочу их мучать всякой академической унылой классикой
Можно дать что-то более-менее актуальное.  Посмотреть в популярные библиотеки, найти ошибку или неполную функциональность, предложить исправить.
источник

RR

Rigidus Rigidus in Lisp Forever
Andrey Kutejko
мне кажется, польза от reader macro сильно преувеличена. Есть наверное всего пара-тройка достойных примеров их применения. В голову приходит https://edicl.github.io/cl-interpol/
вообще-то я могу себе представить такую ситуацию - делаем набор макросов и процедур, связываем их с readtable, чтобы входной язык прямо исполнялся в лисповом образе - таким образом имеет DSL в терминах входящего json-а или что у нас там
источник

AK

Andrey Kutejko in Lisp Forever
можно и так, но зачем эти сложности, если можно всё то же самое сделать функциями?
источник

RR

Rigidus Rigidus in Lisp Forever
чтобы можно было писать валидный лисп код, вставляя в него что-нибудь вроде ∀ ℜ ∈ ξ  и это правильно раскрывалось в исполняемый лисп-код
источник

РБ

Рубикон Безумный... in Lisp Forever
Rigidus Rigidus
чтобы можно было писать валидный лисп код, вставляя в него что-нибудь вроде ∀ ℜ ∈ ξ  и это правильно раскрывалось в исполняемый лисп-код
в атомах пожно писать unicode .. не?
источник

AK

Andrey Kutejko in Lisp Forever
чтобы писать "на лиспе" но без s-выражений? г-г-г
источник

RR

Rigidus Rigidus in Lisp Forever
Рубикон Безумный
в атомах пожно писать unicode .. не?
в атомах можно. но я бы хотел чтобы ∀ без всяких скобок оборачивал все что идет до ∈ - а это уже принципиально другой синтаксис
источник

РБ

Рубикон Безумный... in Lisp Forever
Rigidus Rigidus
в атомах можно. но я бы хотел чтобы ∀ без всяких скобок оборачивал все что идет до ∈ - а это уже принципиально другой синтаксис
ридеры же есть .. не?
источник

RR

Rigidus Rigidus in Lisp Forever
Рубикон Безумный
ридеры же есть .. не?
так мы про них и говорим
источник

RR

Rigidus Rigidus in Lisp Forever
я возражаю на тезис про "польза ридеров сильно преувеличена"
источник

DE

Denis Ermolenko in Lisp Forever
единственная проблема всех этих макросов та ридеров : с ними сложнее дебажить становится
источник

AK

Andrey Kutejko in Lisp Forever
это всё гипотетические рассуждения. На практике такого не особо видно. Вот вспомнился пример CL21 (https://github.com/cl21/cl21). "Модернизация" CL и ридер макросы во все поля. Но как-то развития не получил.

Более успешный лисп — Clojure успешен и без макросов. Они там есть, но используются редко.
источник

DE

Denis Ermolenko in Lisp Forever
Кстати кто не знал, в Slime можно прям в сорцах раскрывать макросы
источник

DE

Denis Ermolenko in Lisp Forever
источник

DE

Denis Ermolenko in Lisp Forever
очень полезная штука
источник

a

akater in Lisp Forever
Посмотрел тут в личные utility-библиотеки.  Оказалось, что примеры в докстрингах это довольно популярно.  У одного человека даже есть отдельная хреновина, которая проверяет их валидность.

Из этого наблюдения надо бы сделать какие-то выводы, но я никаких не сделаю.
источник

a

akater in Lisp Forever
А не, сделаю: примеры в докстрингах это гораздо лучше чем вообще без примеров.  И докстринг, состоящий только из примеров, по-моему нередко будет лучше традиционного докстринга без примеров.
источник

RR

Rigidus Rigidus in Lisp Forever
Andrey Kutejko
это всё гипотетические рассуждения. На практике такого не особо видно. Вот вспомнился пример CL21 (https://github.com/cl21/cl21). "Модернизация" CL и ридер макросы во все поля. Но как-то развития не получил.

Более успешный лисп — Clojure успешен и без макросов. Они там есть, но используются редко.
Вот это мне понравилось - действительно такая библиотека ридер-макросов может быть удобной
источник