我实际上正在学习 scala,我有一个关于尾递归的问题。这是 scala 中带有尾递归的阶乘示例:
def factorial(n: Int): Int = {
@tailrec
def loop(acc: Int, n: Int): Int = {
if (n == 0) acc
else loop(n * acc, n - 1)
}
loop(1, n)
}
我的问题是更新参数,acc
因为我们在函数中这样做loop
可以认为是副作用吗?由于在 FP 中,我们希望防止或减少副作用的风险。
也许我弄错了,但有人可以向我解释这个概念。
谢谢你的帮助