質問するログイン新規登録

回答編集履歴

2

模擬コードを修正

2016/07/14 02:20

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -7,14 +7,14 @@
7
7
  ない関数を「閉じている」と表現します。
8
8
 
9
9
  ```
10
- fo() = a + 1 // 開いている
10
+ fo() = return a + 1 // 開いている
11
- fc(x) = x + 1 // 閉じている
11
+ fc(x) = return x + 1 // 閉じている
12
12
  ```
13
13
 
14
14
  開いている関数は、外部で変数が定義された文脈でしか実行できません。
15
15
 
16
16
  ```
17
- fo() = a + 1
17
+ fo() = return a + 1
18
18
  y = fo() // エラー
19
19
  ```
20
20
 
@@ -23,8 +23,8 @@
23
23
  ```
24
24
  close_fo() =
25
25
  a = 1 // 文脈
26
- fo() = a + 1 // 開いている関数
26
+ fo() = return a + 1 // 開いている関数
27
- fo
27
+ return fo
28
28
 
29
29
  f = close_fo() // 閉じた関数がもらえる
30
30
 
@@ -40,7 +40,8 @@
40
40
  f() =
41
41
  print (count)
42
42
  count = count + 1
43
+ return
43
- f
44
+ return f
44
45
  ```
45
46
 
46
47
  これはクロージャを使わずとも、
@@ -50,6 +51,7 @@
50
51
  f() =
51
52
  print (count)
52
53
  count = count + 1
54
+ return
53
55
  ```
54
56
 
55
57
  と書けます。
@@ -61,11 +63,13 @@
61
63
  f1() =
62
64
  print (count1)
63
65
  count1 = count1 + 1
66
+ return
64
67
 
65
68
  count2 = 0
66
69
  f2() =
67
70
  print (count2)
68
71
  count2 = count2 + 1
72
+ return
69
73
  ```
70
74
 
71
75
  クロージャなら
@@ -76,7 +80,8 @@
76
80
  f() =
77
81
  print (count)
78
82
  count = count + 1
83
+ return
79
- f
84
+ return f
80
85
 
81
86
  f1 = make_counter()
82
87
  f2 = make_counter()

1

表現の改善

2016/07/14 02:19

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  ```
32
32
 
33
- この、「開いている関数に実行文脈をつけたもの」をクロージャと呼びます。
33
+ この、「開いている関数に実行文脈をつけて閉じたもの」をクロージャと呼びます。
34
34
 
35
35
  クロージャの使いみちによくカウンタが例に出てきます。
36
36