Ho solo una conoscenza limitata di Lisp (cercando di imparare un po 'nel mio tempo libero) ma per quanto ho capito le macro Lisp permettono di introdurre nuovi costrutti di linguaggio e sintassi descrivendoli in Lisp stesso. Ciò significa che un nuovo costrutto può essere aggiunto come libreria, senza modificare il compilatore / interprete Lisp.
Questo approccio è molto diverso da quello di altri linguaggi di programmazione. Ad esempio, se volessi estendere Pascal con un nuovo tipo di loop o un linguaggio particolare, dovrei estendere la sintassi e la semantica del linguaggio e quindi implementare quella nuova funzionalità nel compilatore.
Esistono altri linguaggi di programmazione al di fuori della famiglia Lisp (ad eccezione di Common Lisp, Scheme, Clojure (?), Racket (?), Ecc.) Che offrono un'analoga possibilità di estendere la lingua all'interno della lingua stessa?
MODIFICARE
Per favore, evita una discussione estesa e sii specifico nelle tue risposte. Invece di un lungo elenco di linguaggi di programmazione che possono essere estesi in un modo o nell'altro, vorrei capire da un punto di vista concettuale ciò che è specifico per le macro Lisp come meccanismo di estensione e quali linguaggi di programmazione non Lisp offrono alcuni concetti quello è vicino a loro.