Optional and NotNull version 0.5.0 - swift optional like and scala option like

aliak something at something.com
Fri Aug 24 20:59:34 UTC 2018


On Wednesday, 22 August 2018 at 22:49:52 UTC, Paul Backus wrote:
> On Wednesday, 22 August 2018 at 22:11:05 UTC, aliak wrote:
>> On Monday, 20 August 2018 at 19:52:53 UTC, jmh530 wrote:
>>>
>>> It's interesting that both sumtype and optional have match 
>>> templates. Maybe scope to combine these projects?
>>
>> That'd be cool. Optional uses .match on a "some" or "none" 
>> range, while SumType uses it on a union. So ideas on how to go 
>> about it?
>
> In theory, Optional(T) could be implemented as a wrapper around 
> SumType!(T, None), which would let it reuse SumType's match 
> method. I'm not sure if it'd be worth the effort to convert at 
> this point, though.

THis is true. And might be interesting to try out actually. Can 
you access the types in a SumType via index?

I'm thinking because Optional behaves like a range, and I guess 
I'd define a SumType!(T, None), then a rough outline may be:

struct None {}
immutable none = None();

struct(T) {
   SumType(T, None) opt;
   T front() {
     return opt[0]; // what to do here?
   }
}

Or I guess I should maybe do it like this?:

return opt.match!(
   (T val) => val,
   (None) => T.init,
);






More information about the Digitalmars-d-announce mailing list