Bring in the Prolog impl.

This commit is contained in:
Simon Forman
2022-01-15 17:23:11 -08:00
parent 564417c985
commit 839b376d73
60 changed files with 19083 additions and 0 deletions
@@ -0,0 +1,18 @@
?- sjc(add_twice, `[36 *] ii`).
func(add_twice, [int(B), int(D)|A], [int(C), int(E)|A]) :-
maplist(call,
[clpfd:(36*B#=C), clpfd:(36*D#=E)]).
true ;
func(add_twice, [symbol(swap), int(D), int(B)|A], [int(C), int(E)|A]) :-
maplist(call,
[clpfd:(36*B#=C), clpfd:(36*D#=E)]).
true ;
func(add_twice, [symbol(dup), int(D)|A], [int(C), int(B)|A]) :-
maplist(call,
[clpfd:(36*B#=C), clpfd:(36*D#=B)]).
true ;
func(add_twice, [symbol(pop), int(D), int(B)|A], [int(C)|A]) :-
maplist(call,
[clpfd:(36*B#=C), clpfd:(36*D#=_)]).
true .