在 Clojure 中,fn 和 fn* 有什么区别?当我对使用 # 宏创建的函数进行语法引用时,我看到了 fn*。例如,在 REPL 中:
user=> `#(inc %)
(fn* [p1__342__343__auto__] (clojure.core/inc p1__342__343__auto__))
这是否只是用于调试目的,以识别该函数是由 # 而不是 fn 直接创建的?
在 Clojure 中,fn 和 fn* 有什么区别?当我对使用 # 宏创建的函数进行语法引用时,我看到了 fn*。例如,在 REPL 中:
user=> `#(inc %)
(fn* [p1__342__343__auto__] (clojure.core/inc p1__342__343__auto__))
这是否只是用于调试目的,以识别该函数是由 # 而不是 fn 直接创建的?
根据google groups fn*
上的这篇文章,它是创建函数的原始形式,fn
是建立在其之上的宏,用于实现更高级别的功能,如解构。