如果我可以用它们的clpfd对应物替换所有基于整数的算术,我的一些 Prolog 程序可能会受益颇多。 (is)/2
所以我想要权力......用clpfd ......所以我可以X is 10^3
用clpfd-y代替:)
考虑以下五个支持clpfd的 Prolog 处理器:
GNU 序言1.4.4
?- X #= 10^3。 未捕获的异常:error(type_error(fd_evaluable,(^)/2),(#=)/2) ?- X #= 10**3。 X = 1000。
SWI-Prolog 7.3.14
?- 使用模块(库(clpfd))。%自动加载会更棒 真的。 ?- X #= 10^3。 X = 1000。 ?- X #= 10**3。 错误:域错误:预期为“clpfd_expression”,发现“10**3”
B-Prolog 8.1
?- X #= 10^3。 X #= 10^3。 *** 错误(非法数组访问,10^3) ?- X #= 10**3。 X = 1000。
SICStus Prolog 4.3.2
?- 使用模块(库(clpfd))。 真的。 ?- X #= 10^3。 !(^)/2 中存在错误 !约束用户:wi(^)/2 不存在 !目标:10^3 ?- X #= 10**3。 !用户存在错误:(**)/2 !约束用户:(**)/2 不存在 !目标:10**3
请提供想法/提示/建议。我能做些什么?也许使用一些clpfd兼容层?
先感谢您!