4 ms·
Yes, you can use anonymous functions, and you probably would want to do that in practice. However, I was trying to illustrate the point that JavaScript functio
by politician 14y ago
Yes, you can use anonymous functions, and you probably would want to do that in practice. However, I was trying to illustrate the point that JavaScript functions are varadic and function composition was an easy way to drive that point home.
EDIT: Also, you raise a really good point in your example which is that when using parseInt you should always specify the base. If I were to modify my example to take that into account it'd get more messy.
- ricardobeat 14y agoI've been using a pair of functions applyRight/Left that fit this case nicely: ['10','10','10','10'].map(applyRight(null, parseInt, [10], 1) The signature is [context, fn, args, slice] where `slice` is the length of arguments to keep from invocation. It's very rare that something warrants using it vs an anonymous function though.
- politician 14y agoThat's interesting, I like how `slice` lets you concat sequences of arguments, but worry about building functions which have too many convenience features. Thought experiment: what if I wanted to pass every other argument?
- ricardobeat 14y agoI imagine you could pass a function function(arg, i){ return i%2 } as the `slice` parameter, but that's going into crazy territory.
- bdr 14y agoHere's what I use: # Adapted from http://autotelicum.github.com/Smooth-CoffeeScript/literate/partial.html F.partial = (func, a...) -> (b...) -> func (for arg in a then arg ?= b.shift())..., b... For example, do `parseInt10 = F.partial(parseInt, undefined, 10)`, then `[].map(parseInt10)` does the right thing.