| 1 | initial version |
Do you really not want to just have a function of two variables, such as the following?
sage: def f(i,x):
....: return x^(-i)
sage: f(2,2)
1/4
sage: f(3,2)
1/8
I think there is some problem with making a list of lambda functions, but you could use the idea of a "factory" -- a function that returns another function:
sage: def named_function_factory(i):
....: def f(x):
....: return x^(-i)
....: return f
....:
sage: functionlist = [named_function_factory(i) for i in range(10)]
sage: functionlist[2](2)
1/4
sage: functionlist[3](2)
1/8
But note that this is really not so different from just using a function of two variables, i and x, so maybe I still haven't answered your question. But I also don't see an appreciable difference between typing "functionnamei(x)" and "functionname[i](x)" or "functionname(i,x)" for that matter. These are of course quite different in terms of their data types, but is that so significant here?
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.