I just think the moment you start mixing default behaviors, you teaching 
becomes exponentially harder. I found range objects not that hard to teach, 
just "it uses an abstract version of an array to not really build the 
array, but know what the value would be every time you want one. If you 
want the array, just use collect()". I think it should just standardize 
like that: in every case where possible (linspace, range, eye, etc), the 
default option is the abstract version which gives better 
performance/memory usage, but at any time with any of them, you can 
collect() them into an array. However, if some are arrays and some are not, 
that's when confusion happens (especially when there's two "standard" ways 
of doing it, when one isn't supposed to be standard because it's not 
performant?).

I don't think that being too lazy to write collect() is a good reason to 
fill Base with extra lower performing methods, making a minefield for 
newcomers in the docs. Instead, the docs for something like `I` should just 
say it's an operator which uses dispatch to achieve what it's doing, but if 
you need the array, use `collect()` (though `I` doesn't work here because 
of the size issue, but you get the point). This gives a way to be 
compatible with MATLAB while at the same time showing the better way to 
achieve the same goal.

On Monday, August 29, 2016 at 6:41:54 PM UTC-7, Christoph Ortner wrote:
>
>
> (a) teaching: it is easy to explain to beginners what an array is, not so 
> much abstract range objects
>
> (b) occasionally I actually need the vector and am just too lazy to write 
> collect  
>
> (c) compatibility with history (i.e. Matlab)
>
> I appreciate that all of these are to some extent personal preference.
>
>
> On Monday, 29 August 2016 23:43:31 UTC+1, Júlio Hoffimann wrote:
>>
>> Christoph,
>>
>> Can you elaborate on why you want to have both? Also, why you wanted the 
>> non-lazy linspace? If I understood correctly, you're talking about 
>> returning a array with allocated memory versus a range object, isn't the 
>> latter always preferred? I don't understand.
>>
>> -Júlio
>>
>

Reply via email to