MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Function to detect presence of a variable in

  • To: mathgroup at
  • Subject: [mg109411] Re: Function to detect presence of a variable in
  • From: Bob Hanlon <hanlonr at>
  • Date: Sun, 25 Apr 2010 06:26:53 -0400 (EDT)

Count[(1/x)^x, x, -1]


Count[(2/x)^(x*w^4*z), x, -1]


This gives an enexpected result because Count is operating on the FullForm in which x appears 3 times

(2/x)^(x*w^4*z) // FullForm


You can freeze the form with Unevaluated

Count[Unevaluated[(2/x)^(x*w^4*z)], x, -1]



  {HoldFirst, Listable}];

countMeIn[expr_, var_] :=
  var, -1]

countMeIn[(2/x)^(x*w^4*z), x]


countMeIn[(2/x)^(x*w^4*z), {x, y, w, z}]


Bob Hanlon

---- carlos at wrote: 

I would like to have a function

            k = CountMeIn[expr,var]

that returns the number of times var appears in expr, eg.
CountMeIn[(1/x)^x,x]  returns 2. var could be a list, in which case
k would be a conforming list: k = CountMeIn[(2/x)^(x*w^4*z),{x,y,w,z}]
should return {2,0,1,1}.  expr is never a list.

Tried to use Position for this, but the behavior is finicky:
Position[1/x,x] returns {{1,1}} but Position[x,x] or Position[1*x,x]
returns {{}}  (why?)  May be expr should be converted  to {expr}
inside the function for safety?

  • Prev by Date: Re: problems with NMinimize
  • Next by Date: Re: Stop mathematica reordering expression during matrix multiply
  • Previous by thread: How to make GraphicsGrid use different cell sizes?
  • Next by thread: Re: Function to detect presence of a variable in