我的一些Prolog程序可以利用有點有點,如果我可以替換所有(is)/2
爲基礎的整數算術的clpfd對應。SICStus Prolog 4.3.2:clpfd沒有權力?
所以我想力量...與... clpfd,所以我可以用的東西clpfd-Y :)
考慮以下五個Prolog的處理器,支持clpfd更換X is 10^3
:
GNU Prolog 1.4.4
?- X #= 10^3. uncaught exception: error(type_error(fd_evaluable,(^)/2),(#=)/2) ?- X #= 10**3. X = 1000.
SWI-Prolog 7.3.14
?- use_module(library(clpfd)). % autoload would be even more awesome true. ?- X #= 10^3. X = 1000. ?- X #= 10**3. ERROR: Domain error: `clpfd_expression' expected, found `10**3'
B-Prolog 8.1
?- X #= 10^3. X #= 10^3. *** error(illegal_array_access,10^3) ?- X #= 10**3. X = 1000.
SICStus Prolog 4.3.2
?- use_module(library(clpfd)). true. ?- X #= 10^3. ! Existence error in (^)/2 ! constraint user:wi(^)/2 does not exist ! goal: 10^3 ?- X #= 10**3. ! Existence error in user:(**)/2 ! constraint user:(**)/2 does not exist ! goal: 10**3
想法/提示/建議,請。 我能做什麼?或許使用一些clpfd兼容性層?
預先感謝您!
更難處理的數字範圍差異!參見例如Markus Triska [論文](http://www.metalevel.at/drt.pdf) – CapelliC
@CapelliC。我沒有得到那個......你指的是什麼?請指出我的論文中的某些頁面......或者您可能指的是以下限制之一?多個求解器如何能夠優雅地進行交互?或者像'length/2'這樣的內置插件如何不能處理FD變量,因爲實現還沒有趕上? – repeat
@CapelliC。快樂的聖誕節,順便說一句!上升和發光的主已經來到了地球...... – repeat