我有以下序言代码:循环的Prolog
equiAngularTriangle(T) :-
equiLateralTriangle(T).
equiLateralTriangle(T) :-
equiAngularTriangle(T).
有没有办法让翻译从问同样的问题两次?例如,如果我询问equiAngularTriangle(t)
,那么它将询问equiLateralTriangle(t)
,然后询问equiLateralTriangle(t)
,但它应该知道不要再追求最后一个,因为同样的问题在“查询栈”上。
是否有一个选项或一些特殊的语法让Prolog按照我想要的方式工作?
如何检查该陈述是否属实?你是否也有一个规则来完成这个查询?否则:它是如何知道它是否是其中之一? – Marnix 2012-02-06 19:39:42