Clojure 制作数独解算器

Clojure 制作数独解算器,clojure,Clojure,我试图制作一个数独解算程序,它得到一个向量向量作为输入,向量中的每个向量都是数独的一行,其中每个“0”都是数独中的一个空单元 到目前为止,我已经找到了一个带有“0”的单元格可以得到的所有可能的数字 所以问题是,在找到哪个细胞只有一个可能的解决方案后,我将如何在Clojure不变性的情况下将唯一的解决方案放在它的位置上 程序需要返回相同的向量向量,其中每个“0”都被满足要求的数字替换 如果您需要状态,请将其放入原子中。它是一种可变引用类型,保存不变的值。如果您有一个向量向量,您可以使用中的asso

我试图制作一个数独解算程序,它得到一个向量向量作为输入,向量中的每个向量都是数独的一行,其中每个“0”都是数独中的一个空单元

到目前为止,我已经找到了一个带有“0”的单元格可以得到的所有可能的数字

所以问题是,在找到哪个细胞只有一个可能的解决方案后,我将如何在Clojure不变性的情况下将唯一的解决方案放在它的位置上


程序需要返回相同的向量向量,其中每个“0”都被满足要求的数字替换

如果您需要状态,请将其放入原子中。
它是一种可变引用类型,保存不变的值。

如果您有一个向量向量,您可以使用
中的
assoc设置单元格值,例如

(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)

我基本上需要把那个唯一的值放在它在原始矩阵中的位置上,我一直在考虑的一件事是制作一个acumulator矩阵并把元素放在那里,但是如果它是空的,你不能把它们放在相应的索引中,我一定会尝试这个