私はいくつかの論理的な謎を解くためにそのような機能を持っています
iloczyny は、そのような構造[((0,0),(0,1),[5,0])...]
[((cords1),(cords2),[Num1,Num2])..]
kandydaci
を持つリストであり、ソリューションのすべての可能な候補のpola
リストであり、マトリックス内のすべての可能な座標のリストです。
候補を1つ選択し、それを可能な候補と比較してiloczyny
、要素が等しい場合は、座標を削除しpola
て関数をもう一度呼び出したいです。
zbieraj iloczyny kandydaci pola = do
element <- kandydaci
(a,b,[c,d]) <- iloczyny
guard (element == (c_n' [c,d]) && (elem a pola) && (elem b pola))
nowa <- skasuj a b pola
rk <- delete element kandydaci -- here is erorr
Couldn't match type `Integer' with `[Integer]'
In the second argument of `zbieraj', namely `rk'
reszta <- zbieraj iloczyny rk nowa
return ([a,b] ++ reszta)
skasujはそのように見えますskasuj a b lista = delete b (delete a lista)
私はhaskellに精通しておらず、何が悪いのかわかりません