Tag: 尾巴呼叫优化

Swift是否实现了尾部呼叫优化? 并在相互recursion的情况下?

特别是如果我有以下代码: func sum(n: Int, acc: Int) -> Int { if n == 0 { return acc } else { return sum(n – 1, acc + n) } } 请问Swift编译器优化它到一个循环? 在下面更有趣的情况下呢? func isOdd(n: Int) -> Bool { if n == 0 { return false; } else { return isEven(n – 1) } } func isEven(n: Int) […]

什么是Scala注释来确保尾recursion函数被优化?

我认为有@tailrec注释,以确保编译器将优化尾recursion函数。 你只是把它放在宣言前面? 如果在脚本模式下使用Scala(例如在REPL下使用:load <file> ),它也可以工作吗?