3 ms·
That's a good point. However, I find it funny that you should mention another functional library as a way around the issue. Doesn't that defeat the purpose of U
by steadicat 16y ago
That's a good point. However, I find it funny that you should mention another functional library as a way around the issue. Doesn't that defeat the purpose of Underscore?
I have a feeling that either the authors of Underscore don't fully get functional programming, or I don't. Of course, the latter is much more likely, that's why I'm looking for someone to set me straight.
- jashkenas 16y agoFull disclosure: I'm the author. Depending on your definition, nothing in JavaScript is "fully functional programming", because then it would have to be side-effect-free, and JavaScript is very much not that language. Calling them "functional helpers" is mostly a way of distinguishing the style in which you use them, as opposed to the object-oriented versions of the same helper functions, which can be found in libraries like Prototype.js. The idea here being that you can use them in a functional style without having to extend native objects. As I mentioned above, calling "map" with the iterator as the final argument isn't a limitation here -- it's a feature. There aren't many (any) situations I've ever seen in real-world JS where you'd want to curry together a list of iterators, and then map them together across the array, all at once. And if you do want to do such a thing, you can accomplish it either like this: _.map(list, function(item) { return convert1(convert2(convert3(item))); }); Or, if you want to get fancy, take a look at "compose": http://documentcloud.github.com/underscore/#compose http://documentcloud.github.com/underscore/#compose _.map(list, _.compose(convert1, convert2, convert3));
- deleted 16y ago[deleted]