我正在尝试创建一个数独解算器程序,该程序将向量的向量作为输入,其中向量内的每个向量都是数独的一行,其中每个“ 0”是数独中的一个空单元格。
到现在为止,我已经发现具有0的单元格可以获得的所有可能数字。
问题是这样的,在找到哪个单元只有一个可能的解决方案之后,尽管Clojure具有不变性,我如何将那个唯一的解决方案放在其位置上?
程序需要返回相同的向量向量,其中每个“ 0”由满足要求的数字代替。
答案 0 :(得分:2)
如果有向量矢量,则可以使用assoc-in
设置单元格值,例如
(def cells [[1 3 0]
[4 2 1]
[6 3 0]])
(defn set-cell-value [board row col value]
(assoc-in board [row col] value))
(set-cell-value cells 0 2 2)
答案 1 :(得分:0)
如果需要状态,请将其放入atom
https://clojuredocs.org/clojure.core/atom,这是一种可变的引用类型,其中包含不可变的值。