% Figure 14.8 A cryptarithmetic puzzle in CLP(FD). % Cryptarithmetic puzzle DONALD+GERALD=ROBERT in CLP(FD) solve( [D,O,N,A,L,D], [G,E,R,A,L,D], [R,O,B,E,R,T]) :- Vars = [D,O,N,A,L,G,E,R,B,T], % All variables in the puzzle domain( Vars, 0, 9), % They are all decimal digits all_different( Vars), % They are all different 100000*D + 10000*O + 1000*N + 100*A + 10*L + D + 100000*G + 10000*E + 1000*R + 100*A + 10*L + D = 100000*R + 10000*O + 1000*B + 100*E + 10*R + T, labeling( [], Vars).