memberchk(+Element, +List)

In the previous section, it was pointed out that member(e, [s,e,e,n]) succeeds twice. If you have a ground term (or one that is sufficiently instantiated) and you only want to know whether it occurs in a list or not, you would like the membership test to succeed only once. memberchk/2 is a version of member/2 that does this.

memberchk(Element, List) can only be used to test whether a known element occurs in a known list. It cannot be used to enumerate elements of the list. memberchk/2 commits to the first match and does not backtrack.

Use memberchk/2 in preference to member/2, but only where its restrictions are appropriate.