MathGroup Archive 1995

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

Search the Archive

Re: rhs of SetDelayed


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


  • Prev by Date: How to draw OUTLINES on 3D shapes?
  • Next by Date: Crossreference, code documentation
  • Previous by thread: Re: rhs of SetDelayed
  • Next by thread: Re: rhs of SetDelayed