将嵌套哈希集转换为列表(Clojure)

将嵌套哈希集转换为列表(Clojure),clojure,Clojure,我对Clojure有点陌生,我想知道是否有人能帮助我解决目前让我困惑的问题 我正在尝试转换嵌套的数据类型,这些数据类型当前是嵌套的hashmaps,我希望它们是嵌套的列表。请参见以下示例: (def dataset ( { :a #{change to-list} :b (foo) :c (bar) } { :a #{change to-list} :b (foo) :c (bar) } ) ) 我需要更改存储更

我对Clojure有点陌生,我想知道是否有人能帮助我解决目前让我困惑的问题

我正在尝试转换嵌套的数据类型,这些数据类型当前是嵌套的hashmaps,我希望它们是嵌套的列表。请参见以下示例:

(def dataset 
  (
   {
    :a #{change to-list}
    :b (foo)
    :c (bar)
   }
   {
    :a #{change to-list}
    :b (foo)
    :c (bar)
   }
  )
)
我需要更改存储更改到列表的数据结构。我已经花了不少时间试图了解如何做到这一点,但到目前为止,我只是感到困惑。我尝试过使用reduce/map,但是我不能完全理解它们,所以我不能很好地利用它们


干杯。

(map#(update%:a seq)数据集)
工作集可能应该实现seq抽象。您可能不必将其转换为具体的列表类型。也许你可以解释一下这个问题的来龙去脉。谢谢你,利特温斯基,这非常有效。@Michielworkent的评论显然是正确的。如果任务不仅仅是为了教育,您可能不需要将集合转换为列表。为什么要这样做?请注意,文章顶部的示例
def
不正确,与
(def dataset nil)
相同:因为您的数据没有被引用,所以此定义将第一个映射作为函数调用,将第二个映射作为参数传递。
(map#(update%:a seq)dataset)
工作集可能应该实现seq抽象。您可能不必将其转换为具体的列表类型。也许你可以解释一下这个问题的来龙去脉。谢谢你,利特温斯基,这非常有效。@Michielworkent的评论显然是正确的。如果任务不仅仅是为了教育,您可能不需要将集合转换为列表。为什么要这样做?请注意,文章顶部的示例
def
不正确,与
(def dataset nil)
相同:因为您的数据没有被引用,所以此定义将第一个映射作为函数调用,将第二个映射作为参数传递。