• Jump To … +
    Either.js List.js Maybe.js Set.js Stream.js Thunk.js Tuple.js boolean.js char.js base.js extra.js fold.js map.js zipWith.js collection.js control.js curried.js eq.js floating.js fractional.js function.js integral.js match.js num.js numeric.js object.js ord.js realfrac.js register.js string.js type.js nodash.js
  • Thunk.js

  • ¶
    /* vim: set et sw=2 ts=2: */
    'use strict';
    
    module.exports = function () {
      
      var Nodash = this;
    
      function Thunk(generator) {
        var self = this;
        this.get = function () {
          var value = generator();
          self.get = function () {
            return value;
          };
          return value;
        };
      }
      Thunk.__type = 'thunk';
    
      return {
        
        Thunk: Thunk,
    
        resolveThunk: function (x) {
          if (Nodash.is(Thunk, x)) {
            return x.get();
          }
          return x;
        }
    
      };
    };