訪問列表
會員
member/2
有簽名 member(?Elem, ?List)
,如果 Elem
是 List
的成員,則表示 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).