在SML中(一种我在学Python之前学过的函数式编程语言),我可以做到以下几点:
val x = 3;
fun f() = x;
f();
>>> 3
val x = 7;
f();
>>> 3
然而在Python中,第一次调用会返回3,第二次调用会返回7。
x = 3
def f(): return x
f()
>>> 3
x = 7
f()
>>> 7
如何在Python中将变量的值绑定到函数上?
for
循环中迭代的对象。 - Lanaruref
),因此x = 7
更像是ML中的x:= 7
,而不是val x = 7
。(我猜第一个x = 3
就像val x = ref 3
。) - Antal Spector-Zabusky