【发布时间】:2013-11-27 16:20:34
【问题描述】:
如果我有一个程序说:
fun foo x =
let
fun bar y = y * y
in
x + (bar x)
end
foo 123;
当我在 SML/NJ 中运行这个程序而不编译时,它是否必须处理 bar 每个的声明
时间foo 被调用?就像在解释语言中一样。
它会比运行慢吗
fun bar y = y * y
fun foo x = x + (bar x)
foo 123;
由于每次调用函数时值绑定都会更新,所以我想到了这个问题。
或者 SML 会在后台以某种巧妙的方式解决这个问题?
【问题讨论】: