I'm back

Daniel Murphy yebblies at nospamgmail.com
Thu Nov 15 03:07:22 PST 2012


"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message 
news:k81k6s$1qm7$1 at digitalmars.com...
> On 11/14/12 5:30 PM, Daniel Murphy wrote:
>> "Andrei Alexandrescu"<SeeWebsiteForEmail at erdani.org>  wrote in message
>> news:k80l8p$397$1 at digitalmars.com...
>>> On 11/14/12 7:29 AM, H. S. Teoh wrote:
>>>> But since this isn't going to be fixed properly, then the only solution
>>>> left is to arbitrarily declare transient ranges as not ranges (even
>>>> though the concept of ranges itself has no such implication, and many
>>>> algorithms don't even need such assumptions), and move on. We will just
>>>> have to put up with an inferior implementation of std.algorithm and
>>>> duplicate code when one*does*  need to work with transient ranges. It 
>>>> is
>>>> not a big loss anyway, since one can simply implement one's own library
>>>> to deal with this issue properly.
>>>
>>> What is your answer to my solution?
>>>
>>> transient elements == input range&&  not forward range&&  element type 
>>> has
>>> mutable indirections.
>>>
>>> This is testable by any interested clients, covers a whole lot of 
>>> ground,
>>> and has a good intuition behind it.
>>>
>>>
>>> Andrei
>>
>> Is it just me, or would this still refuse:
>> array(map!"a.dup"(stdin.byLine())) ?
>
> It would accept mapping to!string.
>
> Andrei
>

Is that really good enough?  Keeping ranges simple is important, but so is 
making the obvious solution 'just work'. 




More information about the Digitalmars-d mailing list