9

Clojure では、fn と fn* の違いは何ですか? # マクロで作成された関数を構文引用符で囲むと、fn* が表示されます。たとえば、REPL では次のようになります。

user=> `#(inc %)   
(fn* [p1__342__343__auto__] (clojure.core/inc p1__342__343__auto__))

これは単にデバッグ目的で使用され、関数が直接 fn ではなく # によって作成されたことを識別しますか?

4

1 に答える 1

17

this post on google groups に よるとfn*、関数を作成するための原始的な形式でありfn、その上に構築されたマクロであり、分解などの高レベルの機能を実装します。

于 2012-09-19T04:35:30.920 に答える