std.multidimarray
Vlad Levenfeld via Digitalmars-d
digitalmars-d at puremagic.com
Mon May 25 12:14:04 PDT 2015
On Monday, 25 May 2015 at 18:33:57 UTC, Dennis Ritchie wrote:
> Yes, that's what I mean. Some common questions about working
> with multidimensional arrays need to be addressed. For example,
> the cycle `foreach` multiple iterators, etc.
Cycle was tough. I was using T[2] to track slice boundaries but
had to retrofit the library with an Interval!(L,R) type to admit
the possibility of unbounded dimensions. This has resulted in a
fairly easy implementation for cycle, though.
https://github.com/evenex/autodata/blob/master/source/spaces/cyclic.d
Foreach is something I am still considering. It is
straightforward to define a range adaptor that traverses a
multidimensional array lexicographically, but another interesting
possibility is to define traversable multidim arrays recursively,
eg:
2d array = {1d row, 2d remainder}
This is cool, as it may enable us to write generic traversals for
n-dim arrays and trees alike... However I have been struggling to
find a way to make such a thing work with foreach cleanly.
More information about the Digitalmars-d
mailing list