私は最近スキームを学んでおり、マクロは識別子なしでは評価できないが、ラムダ(プロシージャ)はそうできるという設計に興味があります。
たとえば、匿名ラムダを次のように使用できます。
((lambda x x) 1 2 3)
次の構文を使用してマクロを定義する必要があるようです。
(define-macro my-macro (lambda x x))
なぜそのようなメソッドがこのようなマクロを直接作成するのか、私は興味があります:
(define my-macro (macro-lambda x x))
マクロとラムダを別の型と考えれば、後者の方がエレガントかもしれません。
私の質問は次のとおりです。
- 何をし
define-macro
ますか? - マクロとラムダの根本的な違いは何ですか?
- スキームに匿名マクロがありますか?そうでない場合、なぜですか?