【发布时间】:2015-11-26 22:11:43
【问题描述】:
我是函数式编程的新手,我正在尝试弄清楚如何实现以下目标。
我在 Clojure 中有一个数据结构:
[
[
{
:key1 "val1",
:key2 [
{ :type "D", ... },
{ :type "A", ... },
{ :type "B", ...}
]
...
}
]
]
我想要做的是保持与所有数据相同的整体数据结构。但是,我希望“key2”列表中的对象按“类型”排序。
看了一些教程,我有这么多:
(doseq [currentList myDataStructure]
(doseq [currentItem currentList]
(println (get currentItem :key2))
)))
顺便说一句,doseq 是一种遍历列表的好方法吗?我看到 Clojure 会通过递归循环遍历数据结构。对我来说,将帧添加到堆栈中只是为了遍历一个列表似乎有点奇怪。
【问题讨论】:
-
对
recur的调用不会将帧添加到堆栈中 -
哈哈!谢谢你让我知道! :D
-
如果您只想要副作用,
doseq是一个不错的选择,但您可以使用单个doseq来做到这一点。您还需要sort。
标签: data-structures clojure functional-programming