Collections Clojure-如何建立数据结构,可能是增量的
克洛朱尔的新朋友 我正试图以编程方式构建一个数据结构,以便插入到数据库中。实际上,我有一些工作正常的东西,但它对每个记录都进行插入,我想生成整个记录,然后用一个插入一次插入整个内容 以下是我迄今为止所做的工作:Collections Clojure-如何建立数据结构,可能是增量的,collections,clojure,Collections,Clojure,克洛朱尔的新朋友 我正试图以编程方式构建一个数据结构,以便插入到数据库中。实际上,我有一些工作正常的东西,但它对每个记录都进行插入,我想生成整个记录,然后用一个插入一次插入整个内容 以下是我迄今为止所做的工作: (doseq [record-data1 [:one :two :three] (doseq [record-data2 [1 2 3]] (insert {record-data1 record-data2}) 关于如何在插入之前首先生成整个块体结构,有什么建
(doseq [record-data1 [:one :two :three]
(doseq [record-data2 [1 2 3]]
(insert {record-data1 record-data2})
关于如何在插入之前首先生成整个块体结构,有什么建议吗?尝试了地图、步行等方面的变化,但还没有想出任何办法
谢谢。我不太明白你所说的“整个散装结构”是什么意思。不能将record-data1和record-data2的叉积放在同一个字典中。也许你在找这个:
user=> (for [record-data1 [:a :b :c] record-data2 [1 2 3]] {record-data1 record-data2})
({:a 1} {:a 2} {:a 3} {:b 1} {:b 2} {:b 3} {:c 1} {:c 2} {:c 3})
你的问题不清楚。你想让“整体结构”看起来像什么?哎呀,你说得对。类似这样:({:一个1}{:一个2}{:一个3}{:两个1}…)如果您需要添加两个集合的每个组合,我会关心数据库设计。表应该分成两部分吗?@Thumbnail,不是。集合只是生成我需要的记录的一种方式。这张桌子设计得很好。我想这正是我想要的——谢谢。学习一门新语言的挑战之一就是简单地学习标准库中所有可能的函数。重点是,我不知道“for”存在。您也可以在
doseq
上使用额外的绑定来获得与for
相同的扩展行为(尽管在本例中,您不希望这样做,因为您需要一条insert语句)。