![](/img/trans.png)
[英]How to use JPL (the java prolog interface of swi-prolog) with Eclipse?
[英]CLPFD in SWI-Prolog interface with Java
我正在嘗試使用JPL將查詢從Java傳遞到SWI-Prolog(CLPFD)。 在Java中運行程序時出現以下異常。
查詢是= Arithmetic_Expression#= X * Y + X + 1,[Y,X] ins 0..100500,Arithmetic_Expression在1..5 / 10/12中。 線程“主”中的異常jpl.PrologException:PrologException:錯誤(語法錯誤(operator_expected),字符串('Arithmetic_Expression#= X * Y + X + 1,[Y,X] ins 0..100500,Arithmetic_Expression in 1..5於/ 10/12。',21))在jpl.Query.getSubstWithNameVars(Query.java:390)在jpl.Query.get1(Query.java:336)在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?
錯誤的位置是第21個字符,因此
Arithmetic_Expression#=X*Y+X+1,[Y, X] ins 0..100500,Arithmetic_Expression in 1..5/10/12.
123456789012345678901^^
顯然,您尚未聲明use_module(library(clpfd))
,
但是,此后,下一個錯誤將是:
ERROR: Domain error: `clpfd_domain' expected, found `1..5/10/12'
不清楚/10/20
10/20是什么意思。無論如何,我建議您先學習Prolog和clpfd,然后再從Java使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.