Prolog 定义成员的子句和谓词偶数\成员的构造子句
我完成了prolog编码,运行时没有错误。但仍然无法获得我想要的输出。所以我想问问题出在哪里。我的代码就像贝娄Prolog 定义成员的子句和谓词偶数\成员的构造子句,prolog,Prolog,我完成了prolog编码,运行时没有错误。但仍然无法获得我想要的输出。所以我想问问题出在哪里。我的代码就像贝娄 even_member(X, [X|_]). even_member(X, [_|Tail]) :- 0 is X mod 2, write(X), nl, even_member(X, Tail). 我需要的输出是当输入偶数_成员(2、[1,2,3,4,5,6])时。将获得如下输出 even_member(X, [X|_]). even_member(X
even_member(X, [X|_]).
even_member(X, [_|Tail]) :-
0 is X mod 2,
write(X), nl,
even_member(X, Tail).
我需要的输出是当输入偶数_成员(2、[1,2,3,4,5,6])时。将获得如下输出
even_member(X, [X|_]).
even_member(X, [_|Tail]) :-
0 is X mod 2,
write(X), nl,
even_member(X, Tail).
X=2
X=4
X=6
对
有谁能帮我告诉我编码有什么问题吗。谢谢。我可以建议:
even_member(X, List) :-
member(X, List),
0 is X mod 2.
在评估时,给出:
?- even_member(X,[1,2,3,4,5,6]).
X = 2 ;
X = 4 ;
X = 6 ;
false.
否则,如果您想要一次打印出所有值的行为,您可以尝试:
even_member(List) :-
member(X, List),
0 is X mod 2,
write(X), nl,
fail ; true.
在评估时,我们得到:
?- even_member([1,2,3,4,5,6]).
2
4
6
true.
我可以建议:
even_member(X, List) :-
member(X, List),
0 is X mod 2.
在评估时,给出:
?- even_member(X,[1,2,3,4,5,6]).
X = 2 ;
X = 4 ;
X = 6 ;
false.
否则,如果您想要一次打印出所有值的行为,您可以尝试:
even_member(List) :-
member(X, List),
0 is X mod 2,
write(X), nl,
fail ; true.
在评估时,我们得到:
?- even_member([1,2,3,4,5,6]).
2
4
6
true.
在提出更多问题之前,你应该接受旧问题的答案。你的问题也没有多大意义。你是说
偶数成员(X[1,2,3,4,5,6])
而不是偶数成员(2[1,2,3,4,5,6])
?在问更多问题之前,你应该接受旧问题的答案。你的问题也没有多大意义。你是说偶数成员(X[1,2,3,4,5,6])
而不是偶数成员(2[1,2,3,4,5,6])
?