sum(0,0). sum(N,M) :- N1 is N-1, sum(N1,M1), M is …ktaka/PROLOG/sum.pdfsum(0,0). sum(N,M) :- N1 is...
Transcript of sum(0,0). sum(N,M) :- N1 is N-1, sum(N1,M1), M is …ktaka/PROLOG/sum.pdfsum(0,0). sum(N,M) :- N1 is...
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)sum(3,X) の実行
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
N1 is 3-1 sum(N1,M1) X is 3+M1
sum(3,X) の実行
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
N1 is 3-1 sum(N1,M1) X is 3+M1
sum(3,X) の実行
2
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
2 is 2 sum(2,M1) X is 3+M1
sum(3,X) の実行
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
Nr1 is 2-1 sum(Nr1,Mr1) M1 is 2+Mr1
sum(3,X) の実行
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
Nr1 is 2-1 sum(Nr1,Mr1) M1 is 2+Mr1
sum(3,X) の実行
1
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
1 is 1 sum(1,Mr1) M1 is 2+Mr1
sum(3,X) の実行
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
true sum(1,Mr1) M1 is 2+Mr1
Nrr1 is 1-1 sum(Nrr1,Mrr1) Mr1 is 1+Mrr1
sum(3,X) の実行
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
Nrr1 is 1-1 sum(Nrr1,Mrr1) Mr1 is 1+Mrr1
sum(3,X) の実行
0
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
0 is 0 sum(0,Mrr1) Mr1 is 1+Mrr1
sum(3,X) の実行
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
true sum(0,Mrr1) Mr1 is 1+Mrr1
sum(3,X) の実行
0
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
sum(0,0) Mr1 is 1+0
sum(3,X) の実行
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
sum(0,0) Mr1 is 1+0
sum(3,X) の実行
true
true
truetrue
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
true Mr1 is 1
sum(3,X) の実行
1
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,Mr1) M1 is 2+Mr1
1 is 1
sum(3,X) の実行
1
true
true
true true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,1) M1 is 2+1
1 is 1
sum(3,X) の実行
true
true
truetrue
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
sum(1,1) M1 is 2+1
sum(3,X) の実行
true
true
true
true
true true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,M1) X is 3+M1
true M1 is 2+1
true
sum(3,X) の実行
3
true
true
true true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,3) X is 3+3
3 is 3
sum(3,X) の実行
true
true
true true
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
sum(2,3) X is 3+3
true
sum(3,X) の実行
true
true
true truetrue
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,X)
true X is 3+3
true
sum(3,X) の実行
6true
true
true truetrue
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,6)
6 is 6
sum(3,X) の実行
true
true
true true
true
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,6)
6 is 6
sum(3,X) の実行
true
true
true true
true
true
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,6)sum(3,X) の実行
true
true
true true
true
true
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,6)sum(3,X) の実行
true
true
true true
true
true
true
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
sum(3,6)sum(3,X) の実行
true
true
true true
true
true
true
true
true
true
sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.
truesum(3,X) の実行
true
true
true true
true
true
true
true
true
X=6