On Thursday, 19 June 2014 at 21:34:07 UTC, Andrei Alexandrescu
wrote:
On 6/18/14, 10:39 AM, deadalnix wrote:
Use a maybe monad :
Maybe(obj).memeber.nested.val
Yah, I keep on thinking we should explore the maybe monad more
thoroughly as a library in D. -- Andrei
The other night for fun I tried implementing an Option type as a
RandomAccessRange. When a value exists, the range is not empty
and has length 1, otherwise it is empty and has length 0, with
the other primitives doing as expected. It's neat how you then
automatically get all current and future range algorithms for
free. One problem I found trying to use map like bind in Haskell
is that it does the exact opposite of what I want. The result is
not Option!int, but MapResult!(__lambda3, Option!int).