gpt4 book ai didi

if-statement - Prolog,带有条件条款的建筑 list

转载 作者:行者123 更新时间:2023-12-04 06:09:52 25 4
gpt4 key购买 nike

我需要使用序言(SWI flavor )来完成此作业,并且无法理解某些事情。

例如,如果我想遍历一个列表并将其元素添加到另一个列表中,但是只有在满足特定条件的情况下,我该如何处理呢?我可以全部添加,也可以不添加,但是如果我添加检查此条件的子句,则整个递归结果都为“false”。我知道这是为什么,但不知道如何解决。基本上我想要的是:

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)也不会发生。

最佳答案

您可以使用if结构:

<condition> -> (do_something) ; (do_something else)

在这种情况下:
goal(Stuff):-
do_something(X),
if_something(Y)-> do_this(Y) ; true,
always_do_this(Z).

或者您只需编写两个子句,例如:
goal(Stuff):-
do_something(X),
conditional_stuff(Y),
always_do_this(Z).

conditional_stuff(Y):-
condition(Y),
do_this(Y).

conditional_stuff(_).

关于if-statement - Prolog,带有条件条款的建筑 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com