Thanks for these infos. I will definitely pre-allocate memory (in fact I do in the real code).
t Le samedi 22 août 2015 à 14:24 -0700, Sisyphuss a écrit : > 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 > >
