Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 动态向量/列表创建_Clojure - Fatal编程技术网

Clojure 动态向量/列表创建

Clojure 动态向量/列表创建,clojure,Clojure,我是Clojure的新手,我想动态构建一个向量/列表 我构建了这个函数generate map,它返回一个map,比如: {:key 1, :value 1, :other [...]} 在另一个函数get语句中,我有一个doseq调用这个generatemap函数 (defn get-statement [st] (doseq [s st] (generate-map s))) 我想在doseq调用上构建一个映射,将所有这些生成映射返回连接起来,例如: [{:key 1, :va

我是Clojure的新手,我想动态构建一个向量/列表

我构建了这个函数
generate map
,它返回一个
map
,比如:

{:key 1, :value 1, :other [...]}
在另一个函数
get语句
中,我有一个
doseq
调用这个
generatemap
函数

(defn get-statement
  [st] 
  (doseq [s st] (generate-map s)))
我想在
doseq
调用上构建一个映射,将所有这些
生成映射
返回连接起来,例如:

[{:key 1, :value 1, :other [...]}
 {:key 2, :value 2, :other [...]}
 {:key 3, :value 3, :other [...]}]

我该怎么做?谢谢

如果您想创建一些地图,并将它们放入向量,只需使用
for
,与
vec
(into[…)

mapv

(mapv generate-map data) ; Super succinct!
切勿将
doseq
用于此类情况
doseq
不返回任何内容,因此您必须使用一些
atom
或其他效果混乱来实际从循环中获取任何内容

  • 当您需要执行副作用时,使用
    doseq
    ,而不直接需要任何结果

  • 如果循环后需要结果,请使用
    for
    map
    reduce
    (或任何其他函数循环构造)


如果您想创建一些地图,并将它们放入向量中,只需使用
for
,与
vec
(放入[…])

mapv

(mapv generate-map data) ; Super succinct!
切勿将
doseq
用于此类情况
doseq
不返回任何内容,因此您必须使用一些
atom
或其他效果混乱来实际从循环中获取任何内容

  • 当您需要执行副作用时,使用
    doseq
    ,而不直接需要任何结果

  • 如果循环后需要结果,请使用
    for
    map
    reduce
    (或任何其他函数循环构造)


1。不要使用
doseq
,因为您需要结果。对使用
。2.在
功能中查找
<代码>(进入{}…
)。我想发布一个答案,但我在计时:/3。要创建的结果看起来非法;映射需要是键/值对。你是说你想要一个矢量地图吗?谢谢!它起作用了:)Np。检查我刚刚发布的答案。注意,我在你接受答案之前就更新了答案,所以我不确定你是否看到了编辑。有一个比使用
for
短得多的版本。显然我累了。不知道为什么我的思维立刻跳到了
(进入[](for…)
mapv
几乎肯定是适合这里工作的工具,除非您需要某种过滤。1。不要使用
doseq
,因为您需要结果。对使用
。2.在
功能中查找
<代码>(进入{}…
)。我想发布一个答案,但我在计时:/3。要创建的结果看起来非法;映射需要是键/值对。你是说你想要一个矢量地图吗?谢谢!它起作用了:)Np。检查我刚刚发布的答案。注意,我在你接受答案之前就更新了答案,所以我不确定你是否看到了编辑。有一个比使用
for
短得多的版本。显然我累了。不知道为什么我的思维立刻跳到了
(进入[](for…)
mapv
几乎肯定是适合这里工作的工具,除非您需要某种过滤。