回答編集履歴

2

再帰ではなかったですね

2017/05/23 06:09

投稿

maisumakun
maisumakun

スコア145184

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- Haskellなどの関数型言語を中心に、**末尾再帰最適化**といって、上のような「別の関数の返り値をそのまま返り値とする」場合に、処理の流れをつなぎ替えることで、`methodA`から直接`methodB`の呼び出し元に戻る、という最適化をなされることがあります(結果は同じですが、スタックを消費しないなどで効率的に動作します)。
21
+ Haskellなどの関数型言語を中心に、**末尾呼出最適化**といって、上のような「別の関数の返り値をそのまま返り値とする」場合に、処理の流れをつなぎ替えることで、`methodA`から直接`methodB`の呼び出し元に戻る、という最適化をなされることがあります(結果は同じですが、スタックを消費しないなどで効率的に動作します)。
22
22
 
23
23
 
24
24
 

1

末尾再帰について

2017/05/23 06:09

投稿

maisumakun
maisumakun

スコア145184

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には、この最適化はありません。