-- Solve the n-queens puzzle using default rules -- S. Antoy and M. Hanus, Default Rules for Curry, TPLP, vol. 17(2), 2017, pp. 121-147, {-# OPTIONS_CYMAKE -F --pgmF=currypp --optF=defaultrules #-} {-# OPTIONS_CYMAKE -Wnone #-} import Control.Search.SetFunctions main = queens (perm [1..4]) perm [] = [] perm (xs++[x]++ys) = x : perm (xs++ys) queens (_++[x]++y++[z]++_) | abs (x-z) == length y + 1 = failed queens'default p = p