【发布时间】:2011-05-16 21:34:00
【问题描述】:
我需要使用 prolog(SWI 风格)来完成这项家庭作业,并且无法理解某些事情。
例如,如果我想遍历一个列表并将其元素添加到另一个列表中,但只有当它们满足特定条件时,我将如何处理它?我可以将它们全部添加,也可以不添加,但是如果我添加检查此条件的子句,则整个递归结果为“假”。我明白为什么会这样,但不知道如何解决它。基本上我想要的是:
goal(Stuff) :- do_something(X),
only_do_this_if_something(Y),
always_do_this(Z).
目前,如果only_do_this_if_something(Y) 失败,always_do_this(Z) 也不会发生,因为整个目标都变为错误...
【问题讨论】:
-
+1 坦率地表示需要帮助完成家庭作业。
-
@GuyC:这里没有任何特定于 SWI 的内容!
标签: if-statement prolog conditional