fork download
  1. var Maybe = function(x) {
  2. return {
  3. bind: function(f) {
  4. return (x === null) ? null : f(x);
  5. }
  6. };
  7. };
  8.  
  9. var findSomething = function() { return Maybe(3); };
  10. var someFailure = function() { return Maybe(null); };
  11. var findSomethingElse = function(x) { return Maybe(x+5); };
  12. var lookup = function(x,y) { return Maybe(x*y); };
  13.  
  14. findSomething().bind(function(x) {
  15. return findSomethingElse(x).bind(function(y) {
  16. return someFailure().bind(function() {
  17. return lookup(x,y).bind(function(z) {
  18. print('To sie nie wykona');
  19. });
  20. });
  21. });
  22. });
  23.  
  24. findSomething().bind(function(x) {
  25. return findSomethingElse(x).bind(function(y) {
  26. return lookup(x,y).bind(function(z) {
  27. print('val = ' + z);
  28. });
  29. });
  30. });
  31.  
Success #stdin #stdout 0.01s 4984KB
stdin
Standard input is empty
stdout
val = 24