null object Design pattern
by dimitrs_papadimitriou
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
JavaScript
var some = (v) => ({
map: (f) => some(f(v)),
matchWith: pattern => pattern.some(v),
});
var none = () => ({
map: (f) => none(),
matchWith: pattern => pattern.none(v),
});
some('Jim')
.map(x => x.toUpperCase())
.matchWith({
some: value => {
/*do your work here safely*/
console.log(value)
},
none: () => {
console.log("nothing")
/*deal with Maybe.none cases here*/
}
});