【发布时间】:2014-04-22 02:12:07
【问题描述】:
我正在尝试使用 JPL 从 Java 向 SWI-Prolog(CLPFD) 传递查询。在 Java 中运行程序时出现以下异常。
查询是 = Arithmetic_Expression#=X*Y+X+1,[Y, X] ins 0..100500,Arithmetic_Expression in 1..5/10/12。线程“主”jpl.PrologException 中的异常:PrologException:错误(syntax_error(operator_expected),字符串('Arithmetic_Expression#=X*Y+X+1,[Y, X] ins 0..100500,Arithmetic_Expression in 1..5 /10/12.', 21)) 在 jpl.Query.get1(Query.java:336) 在 jpl.Query.getSubstWithNameVars(Query.java:390) 在 jpl.Util.textToTerm(Util.java:163) 在jpl.Query.(Query.java:198)
如您所见,我的 java 程序将查询生成为 1..5 / 10 / 12 的范围联合。但 SWI-Prolog 将其视为 1..5/10/12。不知道为什么会这样?我想这可能是我错误的原因。谁能帮我解决这个错误?
我正在附加 / 因为在我的 Java 程序中到 Windows 以生成查询 \ 将被给出为 '\' 因此我的查询生成为 1..5/10/12。
为什么这会传播到 SWI-Prolog?
【问题讨论】:
标签: java swi-prolog clpfd