回答編集履歴
2
再帰ではなかったですね
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
Haskellなどの関数型言語を中心に、**末尾
|
21
|
+
Haskellなどの関数型言語を中心に、**末尾呼出最適化**といって、上のような「別の関数の返り値をそのまま返り値とする」場合に、処理の流れをつなぎ替えることで、`methodA`から直接`methodB`の呼び出し元に戻る、という最適化をなされることがあります(結果は同じですが、スタックを消費しないなどで効率的に動作します)。
|
22
22
|
|
23
23
|
|
24
24
|
|
1
末尾再帰について
test
CHANGED
@@ -9,3 +9,17 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
`return`の後にはどんな式でも書けますので、もちろんメソッド呼び出しも可能です。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
----
|
16
|
+
|
17
|
+
(この件とは直接関係しない、高度な話)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
Haskellなどの関数型言語を中心に、**末尾再帰最適化**といって、上のような「別の関数の返り値をそのまま返り値とする」場合に、処理の流れをつなぎ替えることで、`methodA`から直接`methodB`の呼び出し元に戻る、という最適化をなされることがあります(結果は同じですが、スタックを消費しないなどで効率的に動作します)。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
なお、現状のJavaには、この最適化はありません。
|