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"]]
回答和,回答和。