访问列表

会员

member/2 有签名 member(?Elem, ?List),如果 ElemList 的成员,则表示 true。此谓词可用于访问列表中的变量,其中通过回溯检索不同的解决方案。

示例查询:

?- 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).