Regarding Nullables

via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 14 06:17:06 PDT 2014


On Saturday, 13 September 2014 at 19:39:03 UTC, Andrei 
Alexandrescu wrote:
> On 9/13/14, 8:36 AM, bearophile wrote:
>> This is a little Haskell program that uses the Maybe type 
>> constructor:
> [snip]
>
> As others noted, I think we need a kind of range with either 
> zero or one element. Also, the range would have an "exception" 
> property that returns null if the operation was successful (and 
> the element is there) or whatever exception produced the 
> result. E.g.:
>
> MaybeRange fun() { ... }
> ...
> auto r = fun;
> if (r.empty)
> {
>     assert(r.exception);
>     ... error case ...

What if the operation failed without producing an exception? 
I.e., if we wrap an API that signals errors by returning false 
for example, do we really need to create an exception just to 
store it in `r.exception`?

> }
> else
> {
>     ... use r.front ...
>     r.popFront;
>     assert(r.empty); // just one element
> }
>
>
> Andrei



More information about the Digitalmars-d mailing list