; Anagrams (fact (insert ?a ?r (?a . ?r))) (fact (insert ?a (?b . ?r) (?b . ?s)) (insert ?a ?r ?s)) (fact (anagram () ())) (fact (anagram (?a . ?r) ?b) (insert ?a ?s ?b) (anagram ?r ?s)) (query (anagram ?x (s t a r))) ; Addition (fact (ints 1 2) (fact (ints 2 3) (fact (ints 3 4) (fact (ints 4 5) (fact (add 1 ?y ?z) (ints ?y ?z)) (fact (add ?x ?y ?z) (add 1 ?a ?x) (add 1 ?b ?z) (add ?a ?y ?b)) (query (add ?x ?y 5)) (fact (eval ?n ?n) (ints ?n . ?rest)) (fact (eval (+ ?a ?b) ?v) (eval ?a ?a1) (eval ?b ?b1) (add ?a1 ?b1 ?v)) (query (eval (+ 2 (+ 1 1)) ?value)) (query (eval ?exp 5))