5 ms·
Am I missing something? Why not just const add = (a,b)=>a+b?
by Traubenfuchs 9y ago
Am I missing something? Why not just
const add = (a,b)=>a+b?
- ponkin 9y agoYou can not use partial application with that. for example const add = x=>y=>x+y can be partialy applied like the following const add3 = add(3) // this is also a function
- masklinn 9y ago> You can not use partial application with that. You can: const add3 = add.bind(null, 3)
- a-saleh 9y agoI still like currying better, but I just might be weird like that :-)
- masklinn 9y agoI only asserted that you could partially apply regular functions. But I don't think currying looks or feels nice in Javascript. Proper curried languages are definitely better suited for partial application though.
- mwilliaams 9y agoYou could use default parameters in this case. const add = (a, b=0) => {return a+b}
- a-saleh 9y agoWell usually it would be for something that is useful, like const greaterThan = x => y => y > x and then I can do thins like numbers.filter(greaterThan(10)) because greatherThan(10) is a function (and I hope I did put the correct comparison operator :)
- masklinn 9y agoIt also works better on languages using free functions than those using method calls e.g. in Haskell you have filter :: (a -> Bool) -> [a] -> [a] so you partially apply to a predicate to get a specific filter condition which you can apply to various contexts e.g. over10 = filter (>= 10) That's why functional languages tend to put the callback first in HoFs, it's usually the more common partial application case.