「末尾再帰」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「末尾再帰(まつびさいき、tail recursive)とは、再帰のうち、関数の末尾にのみ再帰を記述するプログラミングのテ...」)
 
imported>GamerBook
1行目: 1行目:
 
末尾再帰(まつびさいき、tail recursive)とは、[[再帰]]のうち、[[関数]]の末尾にのみ[[再帰]]を記述する[[プログラミング]]のテクニックである。
 
末尾再帰(まつびさいき、tail recursive)とは、[[再帰]]のうち、[[関数]]の末尾にのみ[[再帰]]を記述する[[プログラミング]]のテクニックである。
  
そんな小難しく面倒なことをして何が嬉しいかというと、賢い[[コンパイラ]]だと、[[最適化]]時に末尾再帰を検出すると、自動的に[[再帰]]ではなくしてくれる。これを[[末尾再帰最適化]]という。
+
そんな小難しくて面倒なことをして何が嬉しいかというと、賢い[[コンパイラ]]だと[[最適化]]時に末尾再帰を検出すると自動的に[[再帰]]ではなくしてくれる。これを[[末尾再帰最適化]]という。
  
 
<!--
 
<!--
28行目: 28行目:
  
 
== 末尾再帰の例としてよく上がる処理 ==
 
== 末尾再帰の例としてよく上がる処理 ==
 +
末尾再帰の記述例は以下を参照。
 
* [[フィボナッチ数]]
 
* [[フィボナッチ数]]
 
* [[階乗]]
 
* [[階乗]]

2012年12月6日 (木) 04:30時点における版

末尾再帰(まつびさいき、tail recursive)とは、再帰のうち、関数の末尾にのみ再帰を記述するプログラミングのテクニックである。

そんな小難しくて面倒なことをして何が嬉しいかというと、賢いコンパイラだと最適化時に末尾再帰を検出すると自動的に再帰ではなくしてくれる。これを末尾再帰最適化という。


末尾再帰の例としてよく上がる処理

末尾再帰の記述例は以下を参照。

関連項目

参考文献


外部リンク