回答編集履歴

2

説明補足

2019/12/22 10:52

投稿

shiracamus
shiracamus

スコア5406

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

クロージャについて追記

2019/12/22 10:52

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -27,3 +27,7 @@
27
27
  add関数では x と n を加算しますが、加算する n は最初に呼ばれたときの 42 が記憶されています。
28
28
 
29
29
  1 + 42 で 43 になります。
30
+
31
+
32
+
33
+ このように、内部的に値を閉じ込めて保持しておく関数内関数をクロージャーと言います。