I don't think it's much less efficient to "copy` in your second example. In 
the second function., you should allocate memory for `y` anyway. So why not 
give them a initial value especially when the input and the output of the 
function are very alike.

By the way, in some case, you may want to use `deepcopy()`

On Saturday, August 22, 2015 at 9:51:48 PM UTC+2, Timothée Poisot wrote:
>
> Hi, 
>
> I caught myself wondering about the "correct" way to use function and 
> function! -- or rather, how other people deal with this. 
>
> Let's say I have a simple function that operates on an array, and I 
> want a version to modify the original object, and one that doesn't. 
>
> Is this the correct way of doing it? 
>
> ~~~ 
> function baz!(x) 
>         # Do things on x 
> end 
>
> function baz(x) 
>         y = copy(x) 
>         baz!(y) 
> end 
> ~~~ 
>
> This allows to reuse the code of baz!, but copying the object IS 
> inefficient. How do you usually deal with this situation? 
>
> t 
>

Reply via email to