У мене є лише обмежені знання про Lisp (намагаючись навчитися трохи у вільний час), але, наскільки я розумію, макроси Lisp дозволяють вводити нові мовні конструкції та синтаксис, описуючи їх у самому Lisp. Це означає, що нову конструкцію можна додати як бібліотеку, не змінюючи компілятор / інтерпретатор Lisp.
Цей підхід сильно відрізняється від інших мов програмування. Наприклад, якби я хотів розширити Паскаль на новий тип циклу чи якусь конкретну ідіому, я мав би розширити синтаксис та семантику мови, а потім реалізувати цю нову функцію у компіляторі.
Чи існують інші мови програмування поза сім’єю Lisp (тобто, крім Common Lisp, Scheme, Clojure (?), Racket (?) Тощо), які пропонують подібну можливість поширити мову в межах самої мови?
EDIT
Будь ласка, уникайте розширених дискусій та будьте конкретні у своїх відповідях. Замість довгого списку мов програмування, який можна розширити тим чи іншим способом, я хотів би зрозуміти з концептуальної точки зору, що є специфічним для макросів Lisp як механізму розширення, і які мови, які не є програмами Lisp, пропонують певну концепцію що близько до них.