27
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 …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

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

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