我正在尝试将嵌套向量添加到地图中,即({:cells {[xy]})。我尝试过多种方式来做到这一点,但无论我如何尝试,我都无法让它发挥作用。我不断收到“错误数量的参数(0)传递给:clojure.lang.PercientArrayMap”,或者在另一种情况下,我什至无法让我的剩余函数即(坐标生成)来编译它。我必须手动重新输入它们才能让 REPL 识别它们。一般来说,我确实是一个认真编码的初学者,所以我不知道该去哪里。这是我的功能:
(defn values-manual [grid values]
(let [inter (interleave (coordinates-gen grid) [values])]
(loop [[x y & remaining] inter]
do(
(assoc grid :cells (x y))
(recur remaining)))))
Run Code Online (Sandbox Code Playgroud)
我选择将两个向量(网格和值)交错在一起,因为它们的大小可能不同,并且交错会自动截断为较小的向量,这对于我的输出来说是理想的。然后我访问该列表的前两个元素。然后将它们与我的“网格”地图中的 :cells 键关联起来。然后对其余元素重复。一旦我尝试运行它,它就无法工作,并且我的其他定义的函数也无法被识别。我还使用了 do() 因为我可以验证循环是否适用于多个函数。到底是怎么回事?非常感谢任何帮助。
我尝试了我能想到的一切。这是我的第一个大型编码项目。