# What is the most elegant way to see if an expression is affected by a certain symbol? [duplicate]

Possible Duplicate:
Determine whether some expression contains a given symbol

Let's say I have some expression:

sample = {1, 1/q, f[m]}


And I want to check it if it has the symbol m in it.

My question: Is there a clean or fast way of checking if m is in the equation?

What I came up with so far:

Do[StringFreeQ[ToString[sample], "m"], {i, 300}] // AbsoluteTiming
(* {0.0120007, Null} *)


and

Do[(sample /. m -> Unique[]) === (sample /. m -> Unique[]), {i, 300}] // AbsoluteTiming
(* {0.0100005, Null} *)


These solutions work, but I feel like there might be a faster, functional way of doing this.

-

## marked as duplicate by R. M.♦Sep 27 '12 at 3:59

This question was marked as an exact duplicate of an existing question.

What about FreeQ? – Rojo Sep 27 '12 at 3:51
FreeQ - but thats too short for an answer ;-) – user21 Sep 27 '12 at 3:52
@Rojo Don't MemberQ and FreeQ only check on the first level? I checked this for MemberQ before. – VF1 Sep 27 '12 at 3:52
No, FreeQ checks all levels by default. Both can take a level specification anyway – Rojo Sep 27 '12 at 3:53
Counterexample: FreeQ[{1, 1/q, D[m, t]}, m] – VF1 Sep 27 '12 at 3:53

sample = {1, 1/q, ff[f[m]]};