% Generate and test pattern declare fun {Digit} choice 0 [] 1 [] 2 [] 3 [] 4 [] 5 [] 6 [] 7 [] 8 [] 9 end end {Browse {Search.base.all Digit}} % displays [0 1 2 3 4 5 6 7 8 9] % new search engine declare E E = {New Search.object script(Digit)} % calculate and display one at a time {Browse {E next($)}} declare fun {PairAdd10} D1 D2 in D1 = {Digit} % generate D2 = {Digit} % generate D1+D2 = 10 % test D1#D2 end {Browse {Search.base.all PairAdd10}} % displays [1#9 2#8 3#7 4#6 5#5 6#4 7#3 8#2 9#1] declare fun {Palindrome} X in X = (10*{Digit}+{Digit})*(10*{Digit}+{Digit}) % generate (X>=1000) = true % test (X div 1000) mod 10 = (X div 1) mod 10 % test (X div 100) mod 10 = (X div 10) mod 10 % test X end L = {Search.base.all Palindrome} {Browse L} {Browse {Length L}} % 118 solutions