4 ms·
> extra layer of `Maybe` doesn't buy me anything. Wouldn't that layer be there all the time anyway? Either in the form of a sum type (Just a | Nothing), explic
by codygman 12y ago
> extra layer of `Maybe` doesn't buy me anything.
Wouldn't that layer be there all the time anyway? Either in the form of a sum type (Just a | Nothing), explicit nil checking, or ignoring nil's and getting a runtime error.
- dkarapetyan 12y agoIt's there with nil to begin with. A Maybe type without pattern matching is basically nil checking. Now if he had said I want some kind of pattern matching then I would get behind that.
- codygman 12y agoSo you would prefer a language without sum types but with pattern matching and exhaustiveness checking for nil then?
- dkarapetyan 12y agoNot what I said and I don't see why you make those choices mutually exclusive. You can have pattern matching without sum types and you can have sum types without pattern matching. In fact Ruby's case/when statement is very limited form of pattern matching that can be put to great use with proper use of Structs and overloading of ===.
- masklinn 12y agoErlang is probably a better example of pattern matching (complete) without formal sum types (though dialyzer has value and type alternatives)