Any chance to call Tango as Extended Standard Library
Lars Ivar Igesund
larsivar at igesund.net
Sun Jan 18 08:41:43 PST 2009
Andrei Alexandrescu wrote:
> Denis Koroskin wrote:
>> On Sun, 18 Jan 2009 18:21:55 +0300, Andrei Alexandrescu
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>>> Lars Ivar Igesund wrote:
>>>> Andrei Alexandrescu wrote:
>>>>
>>>>> For example, I'm not sure how code in std.algorithm could help
>>>>> containers or streams in Tango (as it should), or how to reconcile
>>>>> std.algorithm with std.core.array.
>>>> If the language (D2++) will have a new way of iteration and ranges
>>>> known and enforced by the compiler, then I expect Tango to support
>>>> those at some point, and std.algorithm would presumably just work.
>>>> However, if it is based on some interface, ad hoc (these methods must
>>>> be present) or properly via an interface Range { }, I would expect
>>>> Tango developers to be involved in the process of defining those
>>>> interfaces (if Tango is meant to use/know about them). Since I have
>>>> seen neither, it is somewhat difficult to make a well informed
>>>> comment on the subject.
>>>
>>> It's been there for a while now (since 25 Nov 2008).
>>>
>>> http://www.digitalmars.com/d/2.0/statement.html#ForeachStatement
>>>
>>> Scroll down to "Foreach over Structs and Classes with Ranges". The
>>> changelog reflects that too:
>>>
>>> http://www.digitalmars.com/d/2.0/changelog.html
>>>
>>> Version 2.021 mentions "Added range support to foreach statement."
>>>
>>>
>>> Andrei
>>
>> There is a typo in docs
>> (http://www.digitalmars.com/d/2.0/statement.html#ForeachStatement):
>>
>> Foreach Range Properties:
>> .rear return the rightmost element of the range
>>
>> ...
>>
>> for (auto __r = range; !__r.empty; __r.retreat)
>> { auto e = __r.tail; //<- tail or rear?
>> ...
>> }
>>
>
> Turns out Walter didn't like "rear" for a certain reason. :o) He did
> take to my cute "toe" but in the end did not reflect that in the dox.
> The following code compiles and runs:
>
> struct S
> {
> bool empty() {return true;}
> void next() {}
> void retreat() {}
> int head() { return 0; }
> int toe() { return 0; }
> }
>
> void main() {
> S s;
> foreach (e; s) {}
> foreach_reverse (e; s) {}
> }
>
>
> Andrei
toe() ?! tail() good, rear() not so good, toe() sucks.
--
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
More information about the Digitalmars-d
mailing list