私の Prolog プログラムのいくつかは、 に基づく整数演算をすべてclpfdの対応するものに置き換えることができれば、かなりの利益を得ることができます。 (is)/2
だから私は力が欲しい... clpfdX is 10^3
...だから何かclpfd-yに置き換えることができる:)
clpfdをサポートする次の 5 つの Prolog プロセッサを検討してください。
GNU プロローグ1.4.4
?- X #= 10^3。 キャッチされていない例外: error(type_error(fd_evaluable,(^)/2),(#=)/2) ?- X #= 10**3. X = 1000。
SWI-プロローグ7.3.14
?- use_module(ライブラリ(clpfd))。% autoloadはさらに素晴らしいでしょう 真実。 ?- X #= 10^3。 X = 1000。 ?- X #= 10**3. エラー: ドメイン エラー: `clpfd_expression' が必要ですが、`10**3' が見つかりました
B-プロローグ8.1
?- X #= 10^3。 X #= 10^3。 *** エラー(illegal_array_access,10^3) ?- X #= 10**3. X = 1000。
SICStus プロローグ4.3.2
?- use_module(ライブラリ(clpfd))。 真実。 ?- X #= 10^3。 ! (^)/2 に存在エラー ! 制約ユーザー:wi(^)/2 は存在しません ! 目標: 10^3 ?- X #= 10**3. ! ユーザーの存在エラー:(**)/2 ! 制約 user:(**)/2 は存在しません ! 目標: 10**3
アイデア/ヒント/アドバイスをお願いします。私に何ができる?おそらくいくつかのclpfd互換レイヤーを使用しますか?
前もって感謝します!