Is there a way of providing a final transform method when chaining operations (like map reduce) in underscore.js?
Posted
by
latentflip
on Stack Overflow
See other posts from Stack Overflow
or by latentflip
Published on 2012-03-28T13:49:13Z
Indexed on
2012/03/28
23:28 UTC
Read the original article
Hit count: 204
functional-programming
|underscore.js
(Really strugging to title this question, so if anyone has suggestions feel free.)
Say I wanted to do an operation like:
- take an array [1,2,3]
- multiply each element by 2 (map): [2,4,6]
- add the elements together (reduce): 12
- multiply the result by 10: 120
I can do this pretty cleanly in underscore using chaining, like so:
arr = [1,2,3]
map = (el) -> 2*el
reduce = (s,n) -> s+n
out = (r) -> 10*r
reduced = _.chain(arr).map(map).reduce(reduce).value()
result = out(reduced)
However, it would be even nicer if I could chain the 'out' method too, like this:
result = _.chain(arr).map(map).reduce(reduce).out(out).value()
Now this would be a fairly simple addition to a library like underscore. But my questions are:
- Does this 'out' method have a name in functional programming?
- Does this already exist in underscore (
tap
comes close, but not quite).
© Stack Overflow or respective owner