From: Bob Hanlon on 3 Aug 2010 06:36 Attributes[Function] {HoldAll,Protected} Since Function has the attribute HoldAll, you need to use Evaluate listp = {a, b, c, d, e, h, j}; ll = d + a x + h x^2 + b y + e x y + c z + j z^2; Function[##, Evaluate[ll]] & @@ {listp} Function[{a, b, c, d, e, h, j}, a*x + b*y + c*z + d + e*x*y + h*x^2 + j*z^2] Bob Hanlon ---- Camille <camille.segarra(a)gmail.com> wrote: ============= Dear All, I am fairly new to mathematica. I am stuck with a problem I cannot solve. I would like to call a previous equation into the function Function. If a type directly the expression or copy paste it, it works. However, when I call the expression by its name it does not. Here is the code for a more precise explanation: In: ll Out: d + a x + h x^2 + b y + e x y + c z + j z^2 In: Function[##, a x + b y + c z + d + e x y + h x^2 + j z^2] & @@ {Listp} Out: Function[{a, b, c, d, e, h, j}, a x + b y + c z + d + e x y + h x^2 + j z^2] It works well and I can use it to generate as many equations I want by replacing the variables a,b,c,d,e,h,j. But if I do: In:Function[##, ll] & @@ {Listp} Out:Function[{a, b, c, d, e, h, j}, ll] And I cannot use it. Any suggestions? Thanks in advance. Do not hesitate to post if you need some further information. Sorry for my bad english. Camille
|
Pages: 1 Prev: Mathematica and uniform distributions Next: export to file with a specific precision |