成员
member/2有签名member(?Elem, ?List)并表示trueifElem是 的成员List。此谓词可用于访问列表中的变量,其中通过回溯检索不同的解决方案。
示例查询:
?- member(X, [1,2,3]). X = 1 ; X = 2 ; X = 3. ?- member(X,[Y]). X = Y. ?- member(X,Y). Y = [X|_G969] ; Y = [_G968, X|_G972] ; Y = [_G968, _G971, X|_G975] ; Y = [_G968, _G971, _G974, X|_G978] ...
模式匹配
当您需要访问的索引很小时,模式匹配可能是一个很好的解决方案,例如:
third([_,_,X|_], X). fourth([_,_,_,X|_], X).