Re: Collecting multiple function arguments into a List?
- To: mathgroup at smc.vnet.net
- Subject: [mg30567] Re: Collecting multiple function arguments into a List?
- From: aes <siegman at stanford.edu>
- Date: Wed, 29 Aug 2001 01:40:12 -0400 (EDT)
- Organization: Stanford University
- References: <9mfmjm$24n$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Yes, this will work, and do what I want to accomplish -- except I think you want to write vars := {x1, x2, x3} (delayed assignment), so that you'll use the current (latest) values of x1, x2 each time you call f1[vars]. The problem now is that the function definitions become much harder to read (and write). --AES In article <9mfmjm$24n$1 at smc.vnet.net>, "Harvey P. Dale" <hpd1 at nyu.edu> wrote: > 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: 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 >