Generalization of Variables ?

*To*: mathgroup at smc.vnet.net*Subject*: [mg109221] Generalization of Variables ?*From*: Jack L Goldberg 1 <jackgold at umich.edu>*Date*: Sat, 17 Apr 2010 06:06:03 -0400 (EDT)

Hi Folks, The built-in command "Variables" does not give the (naively expected) answer when it is called with functions such as x + Sin[x]. This behavior is mentioned in the description of "Variables". I have constructed a generalization of "Variables" which works as expected - I think? I would appreciated a critique of this code which addresses these issues: a) Is there a situation in which it fails? b) If the code works, can it be improved. Question b) is asked because I am not fully acquainted with all of Mathematica's commands. Here is the code. variables[f_]:= Flatten[ Union[ Cases[ Map[N,Level[f,{-1},z_Symbol]]/.True->{} ] I have tried "variables" on functions coded in the obvious manner, say, Sin[x]+Exp[x^2], Sin[x+y]-z^2, etc. and a few esoteric examples. Jack