我是clojure的新手,我见过匿名函数,如:
(fn [x] (* x x))
Run Code Online (Sandbox Code Playgroud)
还喜欢:
#(* % %)
Run Code Online (Sandbox Code Playgroud)
显然,第二个更简洁.有什么相关的区别吗?每个匿名函数都可以用任何一种风格表示吗?还有一个惯用吗?
与此问题相关,我无法确定如何转换(fn [x] [x x])为后一种语法.我希望有一个指向文档的指针来澄清这种情况.
在Clojure中,fn和fn之间有什么区别?我在语法引用用#宏创建的函数时看到fn*.例如,在REPL中:
user=> `#(inc %)
(fn* [p1__342__343__auto__] (clojure.core/inc p1__342__343__auto__))
Run Code Online (Sandbox Code Playgroud)
这只是用于调试目的,以确定该函数是由#而不是fn直接创建的?