Mam tylko ograniczoną wiedzę na temat Lisp (próbuję nauczyć się trochę w wolnym czasie), ale o ile rozumiem, makra Lisp pozwalają wprowadzać nowe konstrukcje językowe i składnię, opisując je w samym Lisp. Oznacza to, że nowy konstrukt można dodać jako bibliotekę bez zmiany kompilatora / interpretera Lisp.
To podejście bardzo różni się od innych języków programowania. Na przykład, jeśli chciałbym rozszerzyć Pascala o nowy rodzaj pętli lub jakiś szczególny idiom, musiałbym rozszerzyć składnię i semantykę języka, a następnie zaimplementować tę nową funkcję w kompilatorze.
Czy istnieją inne języki programowania spoza rodziny Lisp (tj. Oprócz Common Lisp, Scheme, Clojure (?), Racket (?) Itd.), Które oferują podobną możliwość rozszerzenia języka w obrębie samego języka?
EDYTOWAĆ
Unikaj długiej dyskusji i bądź konkretny w swoich odpowiedziach. Zamiast długiej listy języków programowania, które można rozszerzyć w taki czy inny sposób, chciałbym zrozumieć z koncepcyjnego punktu widzenia, co jest specyficzne dla makr Lisp jako mechanizmu rozszerzenia i które języki programowania inne niż Lisp oferują pewną koncepcję to jest blisko nich.