31.08.2017 09:50, Robert M. Münch пишет:
On 2017-08-29 13:23:50 +0000, Steven Schveighoffer said:

...
In Phobos, find gives you a range where the first element is the one
you searched for, and the last element is the end of the original
range. But what if you wanted all the data *up to* the element
instead? What if you just wanted to look at that specific element? So
we need several functions that do this, and it's not always clear how
to do it correctly, and it's difficult to compose one function from
the other.

I'm a big fan of Rebol (yes, it's far from mainstream and a dead-end
these days but it has a lot of very nice ideas) and it uses the idea of
a series datatype. Fruther information here:
http://www.rebol.com/docs/core23/rebolcore-6.html

There you do something like:

1. Return the first hit and the rest of the series

my-series: "abcdefg"
== "abcdefg"
find my-series "b"
== "bcdefg"


2. Return only the hit

first find my-series "b"
== #"b"


3. Return everything before the first hit

copy/part my-series find my-series "d"
== "abc"


If you ever got used to such a thinking, writing & using more
non-functional approaches, really hurts.

Interesting. How is it comparable with iterators and ranges ideas?

Reply via email to