MathGroup Archive 2009

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

Search the Archive

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


  • Prev by Date: Re: Help with Hold
  • Next by Date: Re: How to define the coefficients of a polynomial to be real?
  • Previous by thread: How can I parse arguments of an expression unevaluated?
  • Next by thread: Re: How can I parse arguments of an expression unevaluated?