i have such function to solve some logic riddle
iloczyny is list with such structure [((0,0),(0,1),[5,0])...]
[((cords1),(cords2),[Num1,Num2])..]
kandydaci is list of all possible candidates for my solution and pola is list with all possible coordinates in my matrix.
I wanna choose one candidate and compare it with possible candidate from iloczyny then if elements are equal i wanna delete coordinates from pola and call function once again.
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 looks just like that skasuj a b lista = delete b (delete a lista)
i’m not knowledgeable in haskell and cant see whats wrong
First, please write type signatures for your functions. That will produce better error messages, and help readers understand your code better.
However, the error is that
use the monadic binding
x <- monadAction, but they should be ordinaryletbindingsA compiling version (with appropriate definition of
c_n') of the function is