Re: How can I parse arguments of an expression unevaluated?

*To*: mathgroup at smc.vnet.net*Subject*: [mg100938] Re: [mg100894] How can I parse arguments of an expression unevaluated?*From*: Oliver Ruebenkoenig <ruebenko at wolfram.com>*Date*: Thu, 18 Jun 2009 06:19:23 -0400 (EDT)*References*: <200906180848.EAA19681@smc.vnet.net>

Erich, On Thu, 18 Jun 2009, Erich Neuwirth wrote: > What I would like to have is the following: > I want to give the expression > MyFunArgs[1, 2, a = 3, b = 4] > and I would like to get 3 lists, > the first list has all the arguments which are > not written as an assignment, {1,2} > The second list should be a list of strings > with the names of the variables to be assignes > {"a","b"} > and the third list should be the values to be assigned: > {3,4} > > so > MyFunArgs[1, 2, a = 3, b = 4] > should produce > {{1,2},{"a","b"},{3,4}} > > How can I accomplish this? > > > try: SetAttributes[MyFunArgs, HoldAll] MyFunArgs[x_, y_, Set[v1_, w1_], Set[v2_, w2_]] := {{x, y}, ToString /@ {v1, v2}, {w1, w2}} MyFunArgs[1, 2, a = 3, b = 4] This only works if a and b are symbols. Oliver

**References**:**How can I parse arguments of an expression unevaluated?***From:*Erich Neuwirth <erich.neuwirth@univie.ac.at>