相关疑难解决方法(0)

Clojure中匿名函数的fn和#语法有区别吗?

我是clojure的新手,我见过匿名函数,如:

(fn [x] (* x x))
Run Code Online (Sandbox Code Playgroud)

还喜欢:

#(* % %)
Run Code Online (Sandbox Code Playgroud)

显然,第二个更简洁.有什么相关的区别吗?每个匿名函数都可以用任何一种风格表示吗?还有一个惯用吗?

与此问题相关,我无法确定如何转换(fn [x] [x x])为后一种语法.我希望有一个指向文档的指针来澄清这种情况.

syntax lambda clojure anonymous-function

13
推荐指数
2
解决办法
927
查看次数

fn和fn*有什么区别?

在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直接创建的?

clojure

9
推荐指数
1
解决办法
310
查看次数

标签 统计

clojure ×2

anonymous-function ×1

lambda ×1

syntax ×1