函数式编程的多语言实践与应用
1. Lua 中的函数式编程基础
在 Lua 里,函数式编程倾向于由众多小的部分组成,可通过重用代码来实现。例如:
print(namesOf(cats)[1])
--> meg
print(breedsOf(cats)[2])
--> siamese
此代码展示了 Lua 中对数据的简单操作与重用。
1.1 Lua 中的递归
递归函数会调用自身,像下面的阶乘函数:
function factorial (n)
if n == 0 then
return 1
else
return n * factorial(n - 1)
end
end
print(factorial(5))
--> 120
不过,对于某些 n 值,执行该函数会导致栈溢出错误。因为每次调用 factorial(n - 1) 时,机器都要在栈中保留对前一次迭代的引用,而栈空间有限,最终会耗尽。例如:
print(factorial(-1))
lua: factorial.lua:5: stack overflow
stack traceback:
factorial.lua:5: in function 'factorial'
factorial.l
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



