| 項がリストの要素であるかどうかを検査する。
member(?項, ?リスト)
member/2 は、項 リストの要素であることを宣言する。
様々な場合がある。:
- もし、項 と リスト が変数でないならば、member/2は 項 がリストの要素であるかどうかを検査する。
バックトラックによって、member/2 は、項 がリストの要素である回数だけ成功する。
- もし、項が変数で、リスト がリストならば、
member/2 は、(バックトラックによって)リストの全要素を検索し、項で単一化される。
- もし、項が変数でなく、リストがオープンリスト
(例えば、リストの尾部が変数のもの)ならば、member/2
項 がリストの要素であることをアサートする。
引数
項 項
リスト リスト
例
| member(b,[a,b,c]). |
成功.
| | member(X,[a,b]). |
以下の代入で、2度成功。
X <- a
X <- b
| | member(a,X).
| 代入で、無限に成功。
X <- [a|_1],
X <- [_2,a|_3],
X <- [_4,_5,a|_6],....
| | member(X,Y).
| 代入で、無限に成功。
X <- _1, Y <- [_1|_2],
X <- _3, Y <- [_4,_3|_5],
X <- _6, Y <- [_7,_8,_6|_9], ...
|
標準
この述語は、ISO-Prolog 標準には含まれない。
関連
append/3,
reverse/2/3,
sort/2.
merge_sort/2.
|