Powiązanie wartości obiektów w ramach funkcji (zamknięcie)
W SML (funkcjonalnym języku programowania, którego nauczyłem się przed Pythonem) mogę wykonać następujące czynności:
val x = 3;
fun f() = x;
f();
>>> 3
val x = 7;
f();
>>> 3
Jednak w Pythonie pierwsze wywołanie da 3, a drugie 7.
x = 3
def f(): return x
f()
>>> 3
x = 7
f()
>>> 7
Jak powiązać wartość zmiennej z funkcją w Pythonie?