Re:Facebook Launches Flow, Static Type Checker for JavaScript
by ufo on Tuesday November 18, 2014 @02:15PM
(#8625710)
You can't really use sum types as they are found in Haskell in Javascript. With Haskell option types you do a pattern matching and create a new binding for the non-null value but in Javascript you don't do that - you keep using the same object that you tested against null.
vs
What you can do in a Javascript-like language is use union and intersection types. However, they can get a bit complicated (specially if you allow unions of non-primitive types) and the extra flexibility can confuse the type inference a bit so I can understand them restricting things to the common case of handling null.
[ Parent
| on HN ]
Re:Facebook Launches Flow, Static Type Checker for JavaScript
by sonyandy on Tuesday November 18, 2014 @05:20PM
(#8626756)
What about
function nothing() {
return {
match: function(cases) { return cases.nothing(); }
};
}
function just(x) {
return {
match: function(cases) { return cases.just(x); }
};
}
just(1).match({
just: function(x) { return x + 1; }
nothing: function() { return 0; }
});