[英]SWI Prolog - CLP(R) not propagating fully
这给了我一个结果:
?- {5/(X) = (5/2)}.
X = 2.0 ;
这向我展示了一个约束,但不允许我以任何实质性方式使用X
:
?- {5/(3-X) = (5/2)}.
{-2.5+5/(3-X)=0.0}.
?- {5/(3-X) = (5/2)}, Z is X.
ERROR: Arguments are not sufficiently instantiated
当然,如果我明确给出解决方案,约束就会消失,它的评估结果为真。
?- {5/(3-X) = (5/2)}, X = 1.
X = 1.
为什么,我怎样才能让它工作?
请参见https://www.swi-prolog.org/man/clpqr.html上的 A10.3 节
但是, clpBNR似乎更好:
?- pack_install(clpBNR).
?- use_module(library(clpBNR)).
?- {5/(3-X) =:= 5/2}, Z = X.
X = Z, Z = 1.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.