众所周知,递归就是函数调用其本身。
那,匿名函数能否也实现递归呢?答案是可以的。
请先看下面的代码
(f => f(f))
(fact => n => n <= 1 ? 1 : n * fact(fact)(n - 1))
(5)。
这是一个立即调用的匿名函数——接受一个参数,返回的函数再接受一个参数。
能够实现的关键是:参数本身同时充当了函数。
众所周知,递归就是函数调用其本身。
那,匿名函数能否也实现递归呢?答案是可以的。
请先看下面的代码
(f => f(f))
(fact => n => n <= 1 ? 1 : n * fact(fact)(n - 1))
(5)。
这是一个立即调用的匿名函数——接受一个参数,返回的函数再接受一个参数。
能够实现的关键是:参数本身同时充当了函数。