Templates problem
jmh530 via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Sep 7 13:29:42 PDT 2016
On Wednesday, 7 September 2016 at 18:55:41 UTC, pineapple wrote:
>
> So the first difference you're likely to notice is that it's
> not as well documented. (Sorry. I'm a busy woman. I'll get
> around to it.) I try to make up for it with copious unit tests,
> which should provide a good example for how to use any given
> module.
>
> In terms of functionality, the single-biggest difference is
> that unlike phobos I don't treat arrays or any other collection
> directly as ranges; instead types may provide an `asrange`
> property returning a range that enumerates their contents. This
> architecture allows you to express HOFs as shown in that prior
> post, not having to worry about whether it's safe to treat the
> array itself as a range or whether you have to slice it.
>
> Other significant differences include not requiring
> bidirectional, slicing, random-access ranges to also be saving
> ("forward") ranges; (for the most part) supporting immutable
> elements in ranges; and a more clearly defined interface for
> what insertion and removal operations you may perform upon a
> range and how they are expected to behave. There are a few
> things phobos provides that I don't yet, but there's also a
> handful of things implemented in mach.range that aren't in
> phobos. (My personal favorite example of such is its small
> suite of PRNG implementations.)
>
Thanks for the reply. It looks like an interesting idea. You
might consider adding this (or a modified version) to a read me
in the range subfolder.
Are you familiar with Chapel at all? The language allows the user
to specify a domain with an array, facilitating sparsity or
arrays distributed across different machines. For some reason I
was reminded of that when you say that asrange returns a range
that enumerates the contents.
More information about the Digitalmars-d-learn
mailing list