Xah Lee wrote: > oops, another error. The example should be: > > Table(f,[1,2,1],[2,6,2]) returns > [[f(1,2),f(1,4),f(1,6)],[f(2,2),f(2,4),f(2,6)]] > >> Wouldn't it be more sensible just to take the iterators directly as >> arguments, so for this example you would do: >> >> Table(f, range(1,3), range(2,7,2)) > > well yes... but this was emulation of Mathematica functions. > (Disclaimer: Mathematica is a trademark of Wolfram Research Inc, who is > not affliated with this project) > > What you suggested is a function called Outer in Mathematica. The Table > function is in a sense multi-dimentional version of Range, so they > share syntax form. > Ok, so, if I understand you, the definition of Table is just:
def Table(f, *lists): return Outer(f, *[range(start,end+1,step) for (start,end,step) in lists]) Is that about right? -- http://mail.python.org/mailman/listinfo/python-list