Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Data.List
- -- N Queens (n: # of Queens, m: length of boarder; for instance, run eight queens as nQueen 8)
- queeN :: Int -> Int -> [[Int]]
- queeN 0 _ = [[]]
- queeN n m = [ q:qs | qs <- queeN (n-1) m, q <- [1..m] \\ qs, noDiag q qs ]
- where noDiag q qs = foldr (&&) True [ abs(q - qs!!(i-1)) /= i | i<-[1..(n-1)] ]
- nQueen n = queeN n n
Advertisement
Add Comment
Please, Sign In to add comment