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...

27
sum(0,0). sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M. sum(3,X) sum(3,X) の実行

Upload: others

Post on 30-Aug-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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 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

sum(0,0).sum(N,M) :- N1 is N-1, sum(N1,M1), M is N+M.

sum(3,X)sum(3,X) の実行

Page 2: 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 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

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) の実行

Page 3: 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 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

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

Page 4: 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 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

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

Page 5: 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 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

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

Page 6: 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 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

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

Page 7: 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 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

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

Page 8: 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 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

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

Page 9: 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 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

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

Page 10: 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 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

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

Page 11: 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 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

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

Page 12: 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 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

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

Page 13: 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 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

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

Page 14: 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 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

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

Page 15: 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 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

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

Page 16: 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 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

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

Page 17: 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 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

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

Page 18: 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 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

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

Page 19: 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 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

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

Page 20: 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 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

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

Page 21: 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 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

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

Page 22: 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 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

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

Page 23: 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 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

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

Page 24: 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 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

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

Page 25: 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 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

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

Page 26: 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 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

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

Page 27: 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 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

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