Prologは一階述語論理を完全性を捨ててチューリング完全にして自動計算出来るようにしたものです。故に、規則を書くだけで計算機が作れます。
eval(I,I):-integer(I).
eval(A+B,I):-eval(A,I1),eval(B,I2),I is I1+I2.
:-eval(1+2+3+4,R),writeln(R).
:-halt.
これだけで出来上がりです。
実行するには、eval.pl
と名前をつけて
とします。
このように Prolog は試験管のように簡単に扱えるので便利です。
Discussion