【发布时间】:2013-11-24 20:07:32
【问题描述】:
我是 prolog 的新手,正在尝试如何让它在找到一个答案后停止查询。我正在使用此代码:
member1(L,[L|_]).
member1(L,[_|RS]) :- member1(L,RS),!.
结果是:
| ?- member1(3,[3,2,3]).
true ? a
yes
我不知道如何让 Prolog 停止打印“true”?而是打印“是”。我尝试过使用 if/else 构造和 format 函数,但它仍然打印“true ?”。有什么想法吗?
【问题讨论】:
-
您只想要一个答案?一个
true? Τrue 表示 3 是 列表 [3,2,3] 的成员。第二个事实是查询在列表中再次找到它。 ` member1(2,[3,2,3]).` 只会给你一个真值。 -
如果你在第一个 true 之后按回车(而不是
;),它将停止回溯
标签: prolog format prolog-cut prolog-toplevel