maxima-bounces at math.utexas.edu wrote on 05/13/2008 09:32:52 AM:
>
> As Barton says, you can use funmake. Another way is to use "subst":
>
> subst([val=n], lambda([x],val+x) )
You do need to be careful with such things:
(%i9) f1(val) := funmake('lambda, [[x], val+x])$
(%i10) f2(val) := funmake('lambda,[['x], val + 'x])$
(%i11) f3(n) := subst([val=n], lambda([x], val+x))$
(%i12) f4(n) := subst(['val=n], lambda([x], val+x))$
(%i13) val : 7$
(%i14) [f1(val), f2(val), f3(val), f4(val)];
(%o14) [lambda([42],49),lambda([x],x+7),lambda([x],val+x),lambda([x],x+7)]
(%i15) x : 42$
(%i16) [f1(val), f2(val), f3(val), f4(val)];
(%o16) [lambda([42],49),lambda([x],x+7),lambda([x],val+x),lambda([x],x+7)]
There is also variants that use buildq.
Barton