P90

(de queens (N)
   (let (R (range 1 N)  L (copy R)  X L)
      (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) )
               (println L) ) ) ) ) )

http://picolisp.com/wiki/?99p90

10jul10    abu