17 lines
502 B
Plaintext
17 lines
502 B
Plaintext
(de queens (N)
|
|
(let (R (range 1 N) L (copy R) X L Cnt 0)
|
|
(recur (X) # Permute
|
|
(if (cdr X)
|
|
(do (length X)
|
|
(recurse (cdr X))
|
|
(rot X) )
|
|
(or
|
|
(seek # Direct check for duplicates
|
|
'((L) (member (car L) (cdr L)))
|
|
(mapcar + L R) )
|
|
(seek
|
|
'((L) (member (car L) (cdr L)))
|
|
(mapcar - L R) )
|
|
(inc 'Cnt) ) ) )
|
|
Cnt ) )
|