匿名,递归,lambda

in 网站建设
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
先让我热热身,写一个递归的函数是来计算n的阶乘.不出意外,它应该是这个样子:
function factorial (n) {
    if (n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}
这也太简单了吧,我要增加一点难度,只准使用匿名函数.
哼哼,so easy.
function (n) {
    if (n == 1) {
        return 1;
    } else {
        return n * this(n - 1);
    }
}
然后我就想,如果不使用 this 关键字,有没办法呢?我眉头一皱

timg (1).jpg

但俗话说的好,再狡猾的猎人也斗不过一只好狐狸啊!我略一思索,不肖片刻便行云流水般写下如下代码:
(function(n,factorial) { //求n的阶乘 n = 5

    if (n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1, factorial);
    }

})(5,function(n,factorial) {

    if (n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1, factorial);
    }

})
站在公司新发的工程学座椅上,品一口82年的java

image

随后志得意满的对旁边工位的jack说,"jack,你看我这一手js代码写    得如何啊?"
jack连眼皮都没抬一下,只轻轻说了句"这么丑的代码也好意思拿出来   给别 人看?",然后就继续睡觉了.
我刚想反驳,却突然觉得这家伙说的好有道理啊(⊙o⊙)!
在敲坏37个回车键之后,我终于写出了如下代码

u=4012774947,2670563879&fm=26&gp=0.jpg

(function(n,factorial) { //求n的阶乘 n = 5

    return factorial(n, factorial);
    
})(5,function(n,factorial) {

    if (n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1, factorial);
    }

})
又报废了两个回车键

u=4012774947,2670563879&fm=26&gp=0.jpg

(function (n) {
    return (function(n,factorial) {
        
            return factorial(n,factorial);

    })(n ,function(n,factorial) {

        if (n == 1) {
            return 1;
        } else {
            return n * factorial(n - 1, factorial);
        }

    })
})(5)
这时恰逢cto路过!

u=2626950788,2818483429&fm=15&gp=0.jpg

于是

u=4012774947,2670563879&fm=26&gp=0.jpg

(function (requireRecFun) {//将需要递归的函数传进去即可.
    return function (n){return requireRecFun(n,requireRecFun)};
})(function(n,factorial) {
    if (n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1,factorial);
    }
})(5)

image

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看