2016年5月2日月曜日

開発環境

7つの言語 7つの世界 (Bruce A. Tate (著)、まつもとゆきひろ (監訳)、田和 勝 (翻訳)、オーム社)の第4章(Prolog)、4.3(2日目: Wapner判事まで15分)、セルフスタディ2日目.(フィボナッチ数列、階乗計算の実装、動作方法)を取り組んでみる。

セルフスタディ2日目.(フィボナッチ数列、階乗計算の実装、動作方法)

コード(Emacs)

fib(0, 0).
fib(1, 1).
fib(N, X) :- N > 1,
             M is N - 2, fib(M, Y),
             L is N - 1, fib(L, Z),
             X is Y + Z.

fact(0, 1).
fact(N, X) :- N > 0,
              M is N - 1,
              fact(M, Y),
              X is N * Y.
   

入出力結果(Terminal)

GNU Prolog 1.4.4 (64 bits)
Compiled Feb  5 2016, 06:20:25 with /opt/local/bin/gcc-apple-4.2
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?- ['sample.pl'].
.../sample.pl compiled, 13 lines read - 1842 bytes written, 108 ms

(3 ms) yes
| ?- fib(0, X).

X = 0 ? a

(1 ms) no
| ?- fib(1, X).

X = 1 ? a

no
| ?- fib(2, X).

X = 1 ? a

no
| ?- fib(10, X).

X = 55 ? a

(1 ms) no
| ?- fact(0, X).

X = 1 ? a

no
| ?- fact(1, X).

X = 1 ? a

no
| ?- fact(2, X).

X = 2 ? a

no
| ?- fact(3, X).

X = 6 ? a

(1 ms) no
| ?- fact(10, X).

X = 3628800 ? a

no
| ?- 


Process prolog finished

0 コメント:

コメントを投稿