RE: Collecting multiple function arguments into a List?
- To: mathgroup at smc.vnet.net
- Subject: [mg30536] RE: [mg30519] Collecting multiple function arguments into a List?
- From: "Harvey P. Dale" <hpd1 at nyu.edu>
- Date: Tue, 28 Aug 2001 04:54:40 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
You can refer to a term in a list by its index. For example, if
vars = {x1, x2, x3, x4, x5, x6, x7, x8}, then vars[[2]] will produce x2.
Thus, if you wish a function of x1, x2, and x4 to equal, for
example, 2 x1 + 3 x2 - x4^2, you can define f1[varlist_]:=2 varlist[[1]]+3
varlist[[2]] - varlist[[4]]^2. Evaluating f1[vars] will then do what you
wish. You can follow this same process for f2, f3, etc.
Best,
Harvey
Professor Harvey P. Dale
Director
National Center on Philanthropy and the Law
New York University School of Law
Room 206A
110 West 3rd Street
New York, N.Y. 10012-1074
-----Original Message-----
From: aes [mailto:siegman at stanford.edu]
To: mathgroup at smc.vnet.net
Sent: Friday, August 24, 2001 8:58 PM
To: mathgroup at smc.vnet.net
Subject: [mg30519] Collecting multiple function arguments into a
List?
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
_____________________________________________________________________
This message has been checked for all known viruses by the
MessageLabs Virus Scanning Service. For further information visit
http://www.messagelabs.com/stats.asp