Like underscore.js, but with lazy evaluation