egison-5.0.0: sample/n-queen.egi
--
-- This file has been auto-generated by egison-translator.
--
def eightQueen : [[Integer]] :=
matchAll [1, 2, 3, 4, 5, 6, 7, 8] as multiset integer with
| $a_1 :: (!#(a_1 - 1) & !#(a_1 + 1) & $a_2) :: (!#(a_1 - 2) & !#(a_1 +
2) & !#(a_2 - 1) & !#(a_2 + 1) & $a_3) :: (!#(a_1 - 3) & !#(a_1 +
3) & !#(a_2 - 2) & !#(a_2 + 2) & !#(a_3 - 1) & !#(a_3 +
1) & $a_4) :: (!#(a_1 - 4) & !#(a_1 + 4) & !#(a_2 - 3) & !#(a_2 +
3) & !#(a_3 - 2) & !#(a_3 + 2) & !#(a_4 - 1) & !#(a_4 +
1) & $a_5) :: (!#(a_1 - 5) & !#(a_1 + 5) & !#(a_2 - 4) & !#(a_2 +
4) & !#(a_3 - 3) & !#(a_3 + 3) & !#(a_4 - 2) & !#(a_4 + 2) & !#(a_5 -
1) & !#(a_5 + 1) & $a_6) :: (!#(a_1 - 6) & !#(a_1 + 6) & !#(a_2 -
5) & !#(a_2 + 5) & !#(a_3 - 4) & !#(a_3 + 4) & !#(a_4 - 3) & !#(a_4 +
3) & !#(a_5 - 2) & !#(a_5 + 2) & !#(a_6 - 1) & !#(a_6 +
1) & $a_7) :: (!#(a_1 - 7) & !#(a_1 + 7) & !#(a_2 - 6) & !#(a_2 +
6) & !#(a_3 - 5) & !#(a_3 + 5) & !#(a_4 - 4) & !#(a_4 + 4) & !#(a_5 -
3) & !#(a_5 + 3) & !#(a_6 - 2) & !#(a_6 + 2) & !#(a_7 - 1) & !#(a_7 +
1) & $a_8) :: [] -> a
def nQueen (n: Integer) : [[Integer]] :=
matchAll between 1 n as multiset integer with
| $a_1 :: (loop $i (2, n, _)
((loop $i1 (1, i - 1, _)
(!#(a_i1 - (i - i1)) & !#(a_i1 + (i - i1)) & ...)
$a_i) :: ...)
[]) -> a
nQueen 4
nQueen 5
nQueen 6
nQueen 7
nQueen 8
nQueen 9
nQueen 10
nQueen 11