Option!T
Meta via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jul 1 07:28:08 PDT 2014
On Tuesday, 1 July 2014 at 11:37:15 UTC, Shammah Chancellor wrote:
> On 2013-12-10 17:28:26 +0000, Andrei Alexandrescu said:
>
>> I talked to a programmer who knows Scala (among others) and he
>> mentioned the usefulness of the Option type - a zero or one
>> element collection (range in D terminology). Here's an article
>> discussing it:
>> http://danielwestheide.com/blog/2012/12/19/the-neophytes-guide-to-scala-part-5-the-option-type.html
>>
>>
>> We have only(x) (http://dlang.org/phobos/std_range.html#.only)
>> to be a collection of exactly one value, but not a type for "a
>> value of type T or nothing at all". Should we follow Scala's
>> example and add it?
>>
>>
>> Andrei
>
> Did anything ever come of this? If there's nothing in Phobos
> yet, I can start working on it and submit a PR. If we can get
> this formalized and into the good usage, it seems like we would
> not need a .? operator.
>
> -Shammah
I have a simple implementation that I've been working on off and
on. It's kind of neat representing it as a range as you get all
the range algorithms for free. One problem I ran into is that my
first instinct is to use std.algorithm.map as the monadic bind
operation, but it produces an option wrapped in a MapResult,
which is no good. You could just implement map as a member
function of Option!T, but it's not transparent, and it's more
difficult to make it lazy.
More information about the Digitalmars-d
mailing list