回答編集履歴
2
説明補足
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
lambda は無名関数です。通常の関数定義にすると以下のように書いたのと同じ意味です。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
```python
|
2
6
|
|
3
7
|
def make_incrementor(n):
|
@@ -18,8 +22,6 @@
|
|
18
22
|
|
19
23
|
|
20
24
|
|
21
|
-
こう書いたのと同じ意味です。
|
22
|
-
|
23
25
|
f には add関数が代入されています。
|
24
26
|
|
25
27
|
add関数の引数が x なので、f(1) で add(1) を呼んだことになります。
|
1
クロージャについて追記
test
CHANGED
@@ -27,3 +27,7 @@
|
|
27
27
|
add関数では x と n を加算しますが、加算する n は最初に呼ばれたときの 42 が記憶されています。
|
28
28
|
|
29
29
|
1 + 42 で 43 になります。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
このように、内部的に値を閉じ込めて保持しておく関数内関数をクロージャーと言います。
|