null object Design pattern

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

//Maybe Functor
//https://leanpub.com/functional-programming-in-js-with-categories/ 

var some = (v) => ({
  v: v,
  map: (f) => some(f(v))
});
var none = () => ({
  v: null,
  map: (f) => none()
});

 
 some(5)
.map(x => x * 5)
.map(console.log);

 none()
.map(x => x * 5)
.map(console.log);