[英]clauses defining member and construct clauses for a predicate even_member
我完成了序言編碼,運行時沒有錯誤。 但仍然無法獲得我想要的輸出。 所以我想問問題出在哪里。 我的編碼就像下面
even_member(X, [X|_]).
even_member(X, [_|Tail]) :-
0 is X mod 2,
write(X), nl,
even_member(X, Tail).
我需要的輸出是在Even_member(2,[1,2,3,4,5,6])中鍵入時。 會得到類似波紋管的輸出
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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.