Re: Collecting multiple function arguments into a List?
- To: mathgroup at smc.vnet.net
- Subject: [mg30533] Re: Collecting multiple function arguments into a List?
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Tue, 28 Aug 2001 04:54:37 -0400 (EDT)
- References: <9m6tm1$l8r$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
One possibility is
vars =
Block[{x},Sequence@@Table[ToExpression["x"<>ToString[i]<>"_"],{i,1,8}]];
f[vars]:= {x1,x3}
Definition[f]
f[x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_] := {x1, x3}
But this will require eight inputs for every function.
--
Allan
---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565
"aes" <siegman at stanford.edu> wrote in message
news:9m6tm1$l8r$1 at smc.vnet.net...
> I have a problem with 8 input variables, call 'em x1, x2, ... , x8, and
> I want to define a bunch of functions (using :=, not =) that depend on
> various subsets of these variables, e.g.
>
> f1[ x1_, x2_, x4_] := << stuff involving x1, x2, x4 >>
>
> f2[ x1_, x3_] := << stuff involving x1 and x3 only >>
>
> f3[[x2_, x3_, x5_, x8_} := << stuff involving x2, x3, x5, x8 >>
>
> To minimize typing and bookkeeping I'd like to define a list of the
> input variables, e.g.
>
> vars = {x1, x2, x3, x4, x5, x6, x7, x8}
>
> and then write all the function definitions in the simplified syntax
>
> f1[vars_] := << same stuff as above >>
> f2[vars_] := << same stuff as above >>
> f3[vars_] := << same stuff as above >>
>
> Can I do this? What's the required syntax?
>
> vars = {x1, x2, x3 ...} ?? OR vars = {x1_, x2_, x3_} ??
>
> fn[vars] := << >> ?? OR fn[vars_] := << >>??
>
> Thanks, siegman at stanford.edu
>