[RFC] Add an operator for ranges to D. Pros and cons?
Dejan Lekic
dejan.lekic at gmail.com
Wed Nov 7 05:07:12 PST 2012
Dear D community, I do not know about You, but I certainly do not
like writing code like:
inRange.fooRange(param).barRange.
.bazRange(param1, param2).outRange;
I also tried to use operators ">>" and "~" but these make it
confusing and hard to understand what the statement actually does.
Therefore I would like to know what do you think about the idea
of having additional operator exclusively made for ranges? This
operator would make it obvious that data are "streamed" (lack of
better term) among ranges.
The first name I could come up with was "opArrow" but "opData"
could also be okay, and operator would be either "~>" or "->".
This would give us an obvious, unambiguous statement:
Console.in ~> filter1(param) ~> fooRange ~> Console.out;
// Console is an imaginary class/struct
Or:
arr ~> odd ~> random ~> randomOdd;
I humbly believe that ranges are one of the most important
concepts in D and that, plus the readability increase are two
valid reasons for having this new operator.
I am also asking this because my point of view is strictly
pragmatic - there may be technical reasons why we should not have
this, or why we should have it done some other way, so please
share your opinion.
Kind regards
More information about the Digitalmars-d
mailing list