K-Prolog Compiler Version 6.0 
算術関数eval/1は、引数と関連する述語を呼び出し、その結果を値とします。
この関数は実験的に実装されており、インタープリタで動作します。コンパイルしようとするとコンパイル時にエラーとなります。
eval(foo(1+2,abc)) ⇒ foo(1+2,abc,X) を生成する。 Z is eval(foo(1+2,abc)) は、foo(1+2,abc,_)を実行し、成功すれば最後の引数の値がZと単一化される。、 上記の例で、foo/3が未定義であったり失敗したり結果が数でない場合には、実行時にtype_errorとなります。
現在の実装は、算術演算と述語の間で数多くのネストが発生することを想定していません。数回のネストに耐えるようにしております。