On Wednesday, 10 October 2018 at 08:46:42 UTC, James Japherson wrote:
Would be nice to be able to pass $ as a function argument to be used in automatic path length traversing.

You can already do this, by returning a custom type from opDollar:

/// Define RealNumbers so that, given `RealNumbers r`, `r[x] == x` but `r[$] == real.infinity`.
struct RealNumbers
{
        private struct Dollar {}
        Dollar opDollar() { return Dollar.init; }
        real opIndex(size_t index) { return index; }
        real opIndex(Dollar dollar) { return real.infinity; }
}

unittest
{
        RealNumbers r;
        assert(r[5] == 5);
        assert(r[$] == real.infinity);
}

Reply via email to