Es6的算法题,求分析过程

题目描述

求大神帮忙分析一下,有点绕晕了

相关代码

(fn =>
    (f =>
        f(f)
    )(f =>
        fn(n =>
            f(f)(n)
        )
    )
)(g =>
    n => [1, 2].indexOf(n) > -1 ? 1 : g(n - 1) + g(n - 2)
)(10)

你期待的结果是什么?实际看到的错误信息又是什么?

这段程序的运行结果是55,希望了解过程和思路。

阅读 2.8k
5 个回答

其实就是斐波那契数列求和,稍微炫技的用了Y不动点组合子。

除了Y不动点组合子之外就是个简单的递归。

利用JavaScript推导Y组合子

远离这位程序员

斐波那契第十项吧,就是这个数等于前两项的和

斐波那契数列求和
其实就是个递归
只不过写法你看不懂而已 es6结构赋值更精简
最好检测一下是否为number 你这些无用数还是蛮多的

我来翻译一下哈:
不知道那个人为什么写的这么麻烦

(function boqie(n) {
    if (n<=2){
        return 1;
    }
    return boqie(n-1)+boqie(n-2)
})(10)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题