[英]clauses defining member and construct clauses for a predicate even_member
i done my prolog coding and no error when run it. 我完成了序言编码,运行时没有错误。 but still cannot get the output i want. 但仍然无法获得我想要的输出。 so i want to ask where is the problem. 所以我想问问题出在哪里。 my coding is like bellow 我的编码就像下面
even_member(X, [X|_]).
even_member(X, [_|Tail]) :-
0 is X mod 2,
write(X), nl,
even_member(X, Tail).
the output i need it is when key in even_member(2,[1,2,3,4,5,6]). 我需要的输出是在Even_member(2,[1,2,3,4,5,6])中键入时。 will get output like bellow 会得到类似波纹管的输出
X=2 X = 2
X=4 X = 4
X=6 X = 6
yes 是
Can anyone help me tell me what's the problem for my coding. 谁能帮我告诉我编码的问题是什么。 Thank you. 谢谢。
I can suggest: 我可以建议:
even_member(X, List) :-
member(X, List),
0 is X mod 2.
Which, when evaluating, gives: 评估时得出:
?- even_member(X,[1,2,3,4,5,6]).
X = 2 ;
X = 4 ;
X = 6 ;
false.
Otherwise, if you wanted behaviour that simply just prints all the values out in one go, you can try: 否则,如果您想要只将所有值一口气打印出来的行为,则可以尝试:
even_member(List) :-
member(X, List),
0 is X mod 2,
write(X), nl,
fail ; true.
Which, when evaluating, we get: 在评估时,我们得到:
?- even_member([1,2,3,4,5,6]).
2
4
6
true.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.