4
PythonデコレータとLispマクロ
Pythonデコレータを見ると、誰かがLispマクロ(特にClojure)と同じくらい強力だという声明を出しました。 PEP 318で与えられた例を見ると、まるでそれらがLispで単純な古い高階関数を使うための単なるおしゃれな方法であるかのように見えます: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) return f return decorate @attrs(versionadded="2.2", author="Guido van Rossum") def mymethod(f): ... 「Clojureマクロの構造」で説明されているように、どの例でもコードの変換は見ていません。さらに、Pythonの欠落した同質 性により、コード変換が不可能になる可能性があります。 それで、これら2つはどのように比較されますか。証拠はそれに反対するようです。 編集:コメントに基づいて、私は2つのことを探しています:「できるだけ強力」と「素晴らしいものを簡単に実行できる」との比較。