[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Multiple values from a function?
In article <3961EFA8.49657FB6@mathstat.dal.ca>, Simon de Vet <simon@mathstat.dal.ca> writes:
>I have a function that does a whole lot (it started out as an
>independent program). It works very well when returning one of it's
>calculated arrays.
>
>It also produces a number of other arrays which I'd like to have access
>to. Unfortunately, I have discovered that a function can only return
>one value.
>
>How can I get the other arrays out of it? The code is intertwined, so it
>would be hard to break into 2 or 3 independent functions.
>
You can easily return them using keyword parameters. Lets say that
your function FUN calculates 3 arrays (internally known as XARR, YARR
and ZARR) and returns XARR. Then, modify the definition of the
function to something like
Fuction FUN, ... ..., second = yarr, third = zarr
....
return, xarr
end
Now, if you'll issue a call like
u = Fun( .... ,second = v, third = w)
then after the call U will contain the calculated XARR, V will contain
YARR, w will contain ZARR. This can be extended indefinitely. Note
that neither U not V or W need to be defined at all, prior to the
call.
Mati Meron | "When you argue with a fool,
meron@cars.uchicago.edu | chances are he is doing just the same"