home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 2
/
DATAFILE_PDCD2.iso
/
utilities
/
_gofer
/
!Gofer
/
archives
/
Demos
/
gs
/
queens
< prev
next >
Wrap
Text File
|
1993-02-12
|
579b
|
17 lines
-- The 8-queens problem from Bird and Wadler's book.
--
-- Be warned: printing out the complete list of solutions (all 92 of them)
-- by evaluating: layn (map show' (queens 8)) takes well over 1 million
-- reductions and uses nearly 2.5 million cells... it may take some time to
-- execute on slower systems! :-)
queens 0 = [[]]
queens (m+1) = [ p++[n] | p<-queens m, n<-[1..8], safe p n ]
safe p n = all not [ check (i,j) (m,n) | (i,j) <- zip [1..] p ]
where m = 1 + length p
check (i,j) (m,n) = j==n || (i+j==m+n) || (i-j==m-n)