It's trivially simply to write a function `currify` which essentially does what your proprosed `curry` keyword does.
```js function currify(f) { return function _currify(flen, _f) { return (...args) => { var remaining = flen - args.length; return remaining <= 0 ? _f(...args) : _currify(remaining, (...args2) => _f(...args, ...args2)); }; }(f.length, f); } function add(a, b, c) { return a + b + c; } var _add = currify(add); console.log(_add(1)(2)(3)); console.log(_add(1, 2)(3)); console.log(_add(1)(2, 3)); console.log(_add(1, 2, 3)); ``` -- Bob On Fri, Oct 16, 2015 at 1:15 AM, Michael McGlothlin < mike.mcgloth...@gmail.com> wrote: > I dislike that syntax because it makes the order of operations mysterious. > I like the idea of currying but it should always be clear what is going on. > A couple parentheses would make things a lot more obvious. > > On Thu, Oct 15, 2015 at 8:02 AM, Mark S. Miller <erig...@google.com> > wrote: > >> const add = a => b => a + b; >> >> >> On Thu, Oct 15, 2015 at 8:08 AM, Niloy Mondal <niloy.monda...@gmail.com> >> wrote: >> >>> It would be really cool to have syntax to curry functions built into the >>> languages. Something like... >>> >>> ```js >>> curry function add(a, b) { >>> return a + b; >>> } >>> >>> add(2)(3); // 5 >>> >>>
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss