Clojure匿名函数

Clojure匿名函数,clojure,anonymous-function,Clojure,Anonymous Function,我正在构建一个函数,将字符串放入向量中 但我不明白,为什么会这样: (mapv(fn[i][i])(“hi”“there”) 但这不起作用: (mapv#([%])”(“你好”那里”)见: 简而言之:#(f)==(fn[](f)),因此#([1 2 3])==(fn[](1 2 3]) 希望有帮助。请参阅: 简而言之:#(f)==(fn[](f)),因此#([1 2 3])==(fn[](1 2 3]) 希望能有所帮助。#()希望函数作为其第一个参数。你可以做#(向量%) e、 g: 当然,你也

我正在构建一个函数,将字符串放入向量中

但我不明白,为什么会这样:

(mapv(fn[i][i])(“hi”“there”)

但这不起作用:

(mapv#([%])”(“你好”那里”)

见:

简而言之:
#(f)==(fn[](f))
,因此
#([1 2 3])==(fn[](1 2 3])

希望有帮助。

请参阅:

简而言之:
#(f)==(fn[](f))
,因此
#([1 2 3])==(fn[](1 2 3])

希望能有所帮助。

#()
希望函数作为其第一个参数。你可以做
#(向量%)

e、 g:

当然,你也可以这样做:

(map vector (range 5))
> ([0] [1] [2] [3] [4])
#()
需要一个函数作为其第一个参数。你可以做
#(向量%)

e、 g:

当然,你也可以这样做:

(map vector (range 5))
> ([0] [1] [2] [3] [4])
,匿名函数将其主体包装在列表中,如下所示:

(read-string "#([%])")
;=> (fn* [p1__20620#] ([p1__20620#]))
通常,对于需要编写主体为向量的匿名函数的情况,我建议只使用宏,就像您在问题中所做的那样:

(mapv (fn [i] [i]) '("hi" "there"))
;=> [["hi"] ["there"]]
但是,在本例中,您的
(fn[i][i])
相当于内置函数,因此我建议您使用该函数:

(mapv vector '("hi" "there"))
;=> [["hi"] ["there"]]
,匿名函数将其主体包装在列表中,如下所示:

(read-string "#([%])")
;=> (fn* [p1__20620#] ([p1__20620#]))
通常,对于需要编写主体为向量的匿名函数的情况,我建议只使用宏,就像您在问题中所做的那样:

(mapv (fn [i] [i]) '("hi" "there"))
;=> [["hi"] ["there"]]
但是,在本例中,您的
(fn[i][i])
相当于内置函数,因此我建议您使用该函数:

(mapv vector '("hi" "there"))
;=> [["hi"] ["there"]]
回答和,回答和。