Jack Brennen on Thu, 08 Mar 2012 18:44:28 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: User defined functions: How to program &n-variables? |
Not an exact parallel to issquare() or the other builtins, but you could try passing the name as a string: ? foo(foo_a,foo_b=0)= { type(foo_b)=="t_STR" && eval(concat(foo_b,"=floor(foo_a^2)")); return(foo_a^2); } ? foo(11.5) 132.25000000000000000000000000000000000 ? foo(11.5,"zyx") 132.25000000000000000000000000000000000 ? zyx 132 This is pass-by-name, rather than pass-by-reference, but might work for you. The main limitation is that these won't work because of name-space issues: foo(N,"foo_a") foo(N,"foo_b") But if you make the foo() parameter names obscure enough, you can reduce the chance of a name collision to practically zero. On 3/8/2012 9:18 AM, Thomas Nordhaus wrote:
Hello! I'd like to do something similar as in the issquare-function: How do I code this? For example: I want to program a function foo such that y=foo(x) yields y=x^2 and y=foo(x,&n) yields y=x^2 and n=floor(x^2).Is there a reference that explains proramming of user defined functions in depth? Thanks in advance, Thomas Nordhaus