returns True if an element of list matches form, and False otherwise.


tests all parts of list specified by levelspec.


represents an operator form of MemberQ that can be applied to an expression.

Details and Options

  • form can be a pattern.
  • The first argument of MemberQ can have any head, not necessarily List.
  • MemberQ[list,form] immediately tests whether any expression in list matches form; Element[x,dom] asserts that x is an element of the symbolic domain dom.
  • MemberQ uses standard level specifications:
  • nlevels 1 through n
    Infinitylevels 1 through Infinity
    {n}level n only
    {n1,n2}levels n1 through n2
  • The default value for levelspec in MemberQ is {1}.
  • A positive level n consists of all parts of expr specified by n indices.
  • A negative level -n consists of all parts of expr with depth n.
  • Level -1 consists of numbers, symbols, and other objects that do not have subparts.
  • Level 0 corresponds to the whole expression.
  • With the option setting Heads->True, MemberQ looks at heads of expressions and their parts.
  • MemberQ works on associations, testing values but not keys.
  • MemberQ[form][expr] is equivalent to MemberQ[expr,form].


open allclose all

Basic Examples  (1)

Test whether 2 is a member of a list:

Scope  (6)

MemberQ works with patterns:

Test down to level 2:

MemberQ normally only tests level 1:

Test whether an association contains a given value:

Test whether an association contains a value that is an even integer:

MemberQ by default only operates at level 1:

Include level 2:

Test whether values have head List:

Applications  (1)

Test whether is ever equal to 1 modulo 7:

Possible Issues  (4)

MemberQ tests for structural matches, not numerical equality:

MemberQ does not test for subsequences:

FreeQ does:

MemberQ by default only operates at level 1:

Include level 2:

MemberQ tests values but not keys in an association:

KeyValuePattern tests for the entire rule:

Introduced in 1988
Updated in 1999