New Article: My Experience Porting Python Dateutil's Date Parser to D
Chris Wright via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Thu Mar 10 09:59:21 PST 2016
On Thu, 10 Mar 2016 08:22:58 +0000, Ola Fosheim Grøstad wrote:
> On Thursday, 10 March 2016 at 00:29:46 UTC, Jack Stouffer wrote:
>>> It's a pretty straight forward standard iterator design and quite
>>> different from the table pointers C++ uses.
>>
>> I explain my grievances in the article.
>
> They didn't make all that much sense to me, so I wondered what Theo's
> issues were. As in: real issues that have empirical significance.
It's a little easier to write iterators in the Python style: you don't
have to cache the current value, and you don't have to have a separate
check for end-of-iteration. It's a little easier to use them in the D
style: you get more flexibility, can check for emptiness without popping
an item, and can grab the first item several times.
You can convert one to the other, so there's no theoretical difference in
what you can accomplish with them. It's mainly annoying. A small
efficiency concern, because throwing exceptions is a little slow.
The largest practical difference comes when multiple functions are
interested in viewing the first item in the same range. LL(1) parsers
need to do this.
Of course, that's just looking at input ranges versus iterators. If you
look at other types of ranges, there's a lot there that Python is missing.
More information about the Digitalmars-d-announce
mailing list