私は、LISPがその場でマクロを使って構文を再定義できることをたくさん読んできました。私はこのことが実際にどれだけ遠くにあるのか不思議です。境界線が別の言語のコンパイラになるほど言語構造を再定義できますか?たとえば、LISPの機能的な性質をよりオブジェクト指向の構文と意味に変更できますか?Rubyのような構文に近いと言えるでしょうか?LISPマクロはどこまで行くことができますか?
特に、マクロを使用してかっこを取り除くことは可能ですか?自分のマイクロ機能でEmacsをカスタマイズするのに十分な(Emacs-)LISPを学んだことがありますが、言語をカスタマイズするにはどのくらいのマクロが使えるのか非常に興味があります。
lispはオブジェクト指向であることに注意してください。 Common Lispオブジェクトシステムを参照してください。 – catphive
[Peter Norvig](http://norvig.com/bio。html)は、[book](http://norvig.com/paip.html)に[Prolog Interpreter](http://norvig.com/paip/prolog.lisp)を作成しました。 –
スキームマクロは非常に強力です。私はSchemeマクロとして完全なLINQ実装を書きました。 [https://ironscheme.svn.codeplex.com/svn/IronScheme/IronSchemeConsole/ironscheme/linq.ss](https://ironscheme.svn.codeplex.com/svn/IronScheme/IronSchemeConsole/ironscheme/linq.ss)このすべての力で、私はそれを適用する良いアイデアが不足している! – leppie