chunkBy limitation?
Dmitri via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Oct 2 16:26:48 PDT 2015
On Friday, 2 October 2015 at 18:16:59 UTC, Ali Çehreli wrote:
> On 10/02/2015 02:21 AM, Dmitri wrote:
> > [...]
> implementation:
> > [...]
> Error:
> > [...]
> function
> > [...]
> less).SortedRange.groupBy!().groupBy
> > [...]
> the nested
> > [...]
> compilation error.
> > [...]
> Group should
> > [...]
>
> This is a known D issue. Currently, objects have a single
> context pointer. Here is a bug discussion about it:
>
> https://issues.dlang.org/show_bug.cgi?id=5710
>
> A workaround for your example is making less() static, which
> removes its context pointer:
>
> void bar(int[] foo)
> {
> import std.algorithm : sort;
>
> static bool less(int a, int b) // contrived
> {
> return a < b;
> }
>
> foo.sort!less.groupBy;
> }
>
> void main() {}
>
> I've just realized that I don't know how to handle the case
> where less() really needs some other state (e.g. it may need to
> use a local variable in main). What can we do?
>
> Ali
Thanks, Ali - this is helpful. The problem was figuring out what
exactly is wrong given a bunch of unhelpful error messages. A
somewhat better message comes when using a unary predicate
version of chunkBy.
More information about the Digitalmars-d-learn
mailing list