武装underscore,我可以获得如下所示的精彩内容:
_([1,2,3]).chain().map(function(n) {return n*2}).reduce(function(m,a) {return m +a},0).value()
显然,最详细的部分是function
的定义。它会更简单吗?类似的东西:
_([1,2,3]).chain().map( {|n| return n*2} ).reduce({|m,a| return m+2; },0).value()
答案 0 :(得分:2)
如果您喜欢编写紧凑的函数式编程,请检查Functional(请注意:它采用非OOP方法):
JS> reduce('+', 0, map('*2', [1, 2, 3]))
12
感觉就像你在写Haskell一样; - )
Haskell> foldl (+) 0 (map (*2) [1, 2, 3])
12
答案 1 :(得分:1)
如果你使用CoffeeScript,你可以写
_([1,2,3]).chain().map((n) -> n*2).reduce((m,a) -> m+2, 0).value()
使用匿名函数。
JavaScript当然没有块。