我当前正在创建Java Swing GUI,用户可以在其中选择自己喜欢的水果类型。根据他们的选择,将仅显示某些水果产品。例如,如果用户选择“葡萄”,则仅显示葡萄果酱或葡萄汁之类的葡萄产品。
问题在于如何在Prolog中断言某些事实。例如,我试图断言用户选择了“ grape”。 TLDR;我正在尝试找到与SWI-Prolog命令相对应的JPL:
assert(selected_fruit(grape)).
以下是我尝试过的2次尝试。
Query q2=new Query("assert selected_fruit(grape)");
System.out.println(q2.hasSolution());
另外一个我尝试过的是:
Query q2 = new Query("selected_fruit", new Term[] {new Atom("grape")});
System.out.println(q2.hasSolution());
第一次尝试抛出了语法错误,而第二次尝试则在运行时抛出了exist_error。如果有人可以说出一些话,那将不胜感激。
答案 0 :(得分:2)
没关系,经过大量实验,我找到了答案。在我的情况下,正确的断言如下:
Query q2 = new Query("assert(selected_fruit(grape))");
System.out.println(q2.hasSolution());
然后控制台应打印出“ true”。