Re: rhs of SetDelayed

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg1607] Re: rhs of SetDelayed*From*: withoff (David Withoff)*Date*: Tue, 4 Jul 1995 02:48:34 -0400*Organization*: Wolfram Research, Inc.

In article <3stisq$oee at news0.cybernetics.net> c7081naa at c1.cc.univie.ac.at (Michael Probst) writes: >Hi ! >I have the following question: > >I have to define a few functions that take the same arguments. >Therefore I don't want to write the list of agguments repeatedly >and use a variable instead. >The following approach: > >lhsArg={a1_,a2_,a3_,a4_}; >rhrArg={a1,a2,a3,a4}; >f[lhsArg]:=g[rhsArg]; > >does not work. The left side is o.k. but since rhsArg is not >converted to {a1,a2,a3,a4} the right side is not. >How does one do this ? > >Thanks a lot ! >Michael >michael.probst at uibk.ac.at You'll need to force evaluation of the selected part of the right-hand side of the assignment before the assignment is evaluated. There are about a dozen ways to do this. Here is one of my favorites. In[1]:= lhsArg={a1_,a2_,a3_,a4_}; In[2]:= rhsArg={a1,a2,a3,a4}; In[3]:= ((f[lhsArg]:=g[#]) &)[rhsArg] In[4]:= ?f Global`f f[{a1_, a2_, a3_, a4_}] := g[{a1, a2, a3, a4}] Dave Withoff Research and Development Wolfram Research