usr_zip works (again)
[gule-log:guile-log.git] / tests / prolog-zip.scm
1 (use-modules (logic guile-log iso-prolog))
2 (use-modules (logic guile-log guile-prolog zip))
3
4 (compile-prolog-string
5 "
6 c(X,A)   :- c(X,A,0). 
7 c(X,A,N) :- N < 10, (X = A ; (B is A + 1, M is N + 1, c(X,B,M))).
8
9 f(X,Y) :- zip(lane(X, c(X,0)    ),
10               lane(Y, c(Y,100)  )).
11
12 g(X,Y) :- usr_zip(lane(Tag_a,X,c(X,0)),
13                   lane(Tag_b,Y,c(Y,100)),
14              (((X mod 2) =:= 0 -> update(Tag_a) ; true),
15               ((Y mod 2) =:= 1 -> update(Tag_b) ; true))).
16 ")
17
18 (pk 'f (prolog-run * (X Y) (f X Y)))
19 (pk 'g (prolog-run * (X Y) (g X Y)))