Download code

From LiteratePrograms

Jump to: navigation, search

Back to Eight_Queens_puzzle_(Haskell)

Download for Windows: zip

Download for UNIX: zip, tar.gz, tar.bz2

queens

queens :: Int -> [[Int]]
queens n = foldM f [] [1..n] where
    f rows _ = [row : rows |
                row <- [1..n],
                safeAddition rows row 1]


safeAddition

safeAddition :: [Int] -> Int -> Int -> Bool
safeAddition [] _ _ = True
safeAddition (r:rows) row i =
   row /= r &&
   abs (row - r) /= i &&
   safeAddition rows row (i + 1)


Views
Personal tools