annotate Examples/multiply/multi2 @ 0:cfb7c6b24319

Initial revision
author kono
date Thu, 30 Aug 2007 14:57:44 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
1 main :- read((In1,In2)),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
2 mult_imp4(In1,In2,M,N,Done),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
3 #write((Done,M,N)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
4
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
5 mult_imp4(In1,In2,M,N,Done) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
6 #stable(In1),#stable(In2),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
7 @ (
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
8 M = In2,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
9 N = In1,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
10 Done = 0,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
11 int1(In1,In2,Done,M,N)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
12 ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
13
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
14 int1(In1,In2,Done,M,N) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
15 halt(Done=1),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
16 intN(In2,Done,M,N).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
17
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
18 intN(In2,Done,M,N) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
19 @M = M+In2,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
20 @N = N-1,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
21 (if N-2=0 then @Done=1 else @Done=0),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
22 next(intN(In2,Done,M,N)).