Self-recursion and arrow functions

Axel Rauschmayer axel at rauschma.de
Sun Mar 17 07:39:11 PDT 2013


;-)

How about the following (about which I’m serious)?

function defineRec(f) {
    return args => f(f, ...args);
}

let factorial = defineRec((me, n) => n <= 1 ? 1 :  n * me(me, n-1))


On Mar 17, 2013, at 14:33 , "Mark S. Miller" <erights at google.com> wrote:

> Just in case anyone does not realize that this thread is humorous, 
> 
>     const factorial = n => n>1 ? n*factorial(n-1) : 1;
> 
> Yes, you can't use this as an expression. So what? After this declaration you can use factorial as an expression. Anonymous lambda expressions are a wonderful things. But in actual development, I have never yet encountered a recursive function I didn't want to name.
> 
> Ok, and now back to our irregularly scheduled humor...
> 
> 
> 
> 
> On Sun, Mar 17, 2013 at 6:19 AM, Kevin Smith <khs4473 at gmail.com> wrote:
> 
> 
> Sorry arrow functions but this isn't a better JS.
> 
> Bah.  Arrow functions are a huge usability win for JS.  Try them- you'll see!
> 
> { Kevin } 
> 
> 
> 
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
> 
> 
> 
> 
> -- 
>     Cheers,
>     --MarkM
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss

-- 
Dr. Axel Rauschmayer
axel at rauschma.de

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130317/67116988/attachment.html>


More information about the es-discuss mailing list