【发布时间】:2021-04-26 06:57:56
【问题描述】:
我是 Prolog 新手,现在正在学习 SWI-Prolog,我想知道我是否可以使用“;”在查询中表达析取查询条件,例如,我写了这个查询
?-p(a,V1,V2),(V1=b;V1=null),(V2=c;V2=null)
并想检查是否存在事实 p/3,其中
-
第一项应该是常数“a”;
-
第二项应该是常量“b”或空;
-
第三项应该是常量“c”或 null。
我想知道这是否是进行查询的正确方法,是否存在更简洁的形式,例如可能
?-p(a,(b;null),(c;null))
谢谢!
【问题讨论】:
-
是的,这里的“null”只是代表一个常数,可以用其他任何常数符号代替。
标签: prolog