再帰は、概念やプロセスの定義が、それ自体のより単純な、あるいは以前のバージョンに依存する場合に発生します。[ 1 ]再帰は、言語学から論理学に至るまで、様々な分野で用いられています。再帰の最も一般的な応用分野は数学とコンピュータサイエンスであり、定義中の関数がそれ自体の定義内に適用されます。これは一見すると無限の数のインスタンス(関数値)を定義しているように見えますが、多くの場合、無限ループや参照の無限連鎖が発生しないような方法で行われます。
再帰的なプロセスは再帰的です。ビデオフィードバックは、無限遠鏡のように再帰的な画像を表示します。

数学とコンピュータ サイエンスでは、オブジェクトまたはメソッドのクラスは、次の 2 つのプロパティによって定義できる場合に再帰的な動作を示します。
例えば、以下はある人の祖先の再帰的な定義です。人の祖先は次のいずれかです。
フィボナッチ数列は再帰のもう一つの典型的な例です。
多くの数学公理は再帰的な規則に基づいています。例えば、ペアノ公理による自然数の正式な定義は、「0は自然数であり、それぞれの自然数には、やはり自然数である次の数が存在する」と記述できます。[ 2 ]この基本ケースと再帰的な規則によって、すべての自然数の集合を生成することができます。
再帰的に定義されたその他の数学オブジェクトには、階乗、関数(例:再帰関係)、集合(例:カントール三元集合)、フラクタルなどがあります。
再帰には、もっと冗談めいた定義もいろいろあります。「再帰的なユーモア」を参照してください。

再帰とは、ある手続きのステップの一つが、その手続き自身を呼び出すことを含む場合に、その手続きが行う処理のことである。再帰を経る手続きは「再帰的」であると言われる。[ 3 ]
再帰を理解するには、手続きと手続きの実行の違いを認識する必要があります。手続きとは、一連の規則に基づく一連のステップであり、手続きの実行とは、実際に規則に従ってステップを実行することです。
再帰は、あるプロシージャの仕様内で他のプロシージャの実行を参照することと関連していますが、同じではありません。
手順がこのように定義されると、すぐに無限ループの可能性が生じます。再帰は、手順が完了できるように特定のケースで問題のステップがスキップされる場合にのみ、定義で適切に使用できます。
再帰的な手続きは、たとえ適切に定義されたとしても、人間にとって容易ではありません。なぜなら、手続きの新たな呼び出しと、既に実行中の手続きの呼び出しを区別する必要があるからです。そのためには、複数の同時インスタンスがどの程度まで進行しているかを管理する作業が必要になります。そのため、日常的な状況で再帰的な定義が行われることは稀です。
言語学者ノーム・チョムスキーは、他の多くの人々とともに、言語における文法的な文の数に上限がないこと、そして文法的な文の長さに上限がないこと(文を発話するのに利用できる時間などの実際的な制約以外)は、自然言語における再帰の結果として説明できると主張している。[ 4 ] [ 5 ]
これは、文のような統語範疇の再帰的定義という観点から理解できます。文は、動詞の後に別の文が続く構造を持つ場合があります。例えば、「ドロシーは魔女は危険だと思っている」という文では、 「魔女は危険だ」という文がより大きな文の中に出現します。つまり、文は(非常に大まかに言えば)名詞句、動詞、そして必要に応じて別の文を含む構造を持つものとして再帰的に定義できます。これは、数学的な再帰の定義の特殊なケースに過ぎません。
これは言語の創造性、つまり文法的な文の無限の数を理解する一つの方法を提供する。なぜなら、文の長さは任意になり得ると直ちに予測できるからである。ドロシーはトトがブリキの木こりが…と言ったのではないかと疑っていると思う。文以外にも再帰的に定義できる構造は多く存在し、したがって文の中で一つのカテゴリーのインスタンスを別のカテゴリーに埋め込む方法も数多く存在する。[ 6 ]長年にわたり、言語全般がこの種の分析に適していることが証明されてきた。
再帰は人間の言語の本質的な性質であるという、一般的に受け入れられている考えは、ダニエル・エヴェレットによって、ピダハン語に関する自身の主張に基づいて異議を唱えられた。アンドリュー・ネヴィンズ、デイヴィッド・ペセツキー、シレーヌ・ロドリゲスなど、これに反論する者は数多くいる。[ 7 ]文学における自己言及は、いずれにせよ、数学的あるいは論理的な再帰とは性質が異なると主張できる。[ 8 ]
再帰は統語論だけでなく自然言語の意味論でも重要な役割を果たしている。例えば、 andという単語は、文の意味に適用して新しい文を作ることができる関数として解釈することができ、同様に名詞句の意味、動詞句の意味などにも適用できる。また、自動詞、他動詞、二他動詞にも適用できる。再帰に適切な柔軟性を備えた単一の表示を与えるために、通常はこれらの異なるタイプの意味を引数として取ることができるように定義される。これは、文を組み合わせる単純なケースを定義し、次に他のケースをその単純なケースに基づいて再帰的に定義することによって行うことができる。[ 9 ]
再帰文法は再帰的な生成規則を含む形式文法である。[ 10 ]
再帰は、コンピュータサイエンス、プログラミング、哲学、数学の教科書などで、ユーモラスな意味合いで使われることがあります。一般的には、循環的な定義や自己参照が用いられ、想定される再帰ステップが基底ケースに近づくどころか、無限後退に陥るというものです。このような書籍の用語集に、次のようなジョーク的な項目が含まれていることは珍しくありません。
ブライアン・カーニハンとデニス・リッチーの共著『プログラミング言語 C』 のいくつかの版の索引269ページに、このジョークのバリエーションが見られる。索引のエントリが自分自身を再帰的に参照している(「再帰 86、139、141、182、202、269」)。このジョークの初期のバージョンは、ローラン・シクロッシーの『Let's talk Lisp』(プレンティス・ホール・プロダクション社より1975年12月1日出版、著作権取得日1976年)やカーニハンとプラウガーの共著『Software Tools』(アディソン・ウェズリー・プロフェッショナル社より1976年1月11日出版)に見られる。このジョークはカーニハンとパイクの共著『UNIXプログラミング環境』にも登場する。 『プログラミング言語 C』の初版には登場していない。このジョークは関数型プログラミングの伝承の一部であり、前述の本の出版以前から関数型プログラミングのコミュニティで既に広まっていた。[ 12 ] [ 13 ]

もう一つのジョークは「再帰を理解するには、再帰を理解しなければならない」というものである。[ 11 ]英語版の Google ウェブ検索エンジンでは、「再帰」を検索すると、サイトが「もしかして:再帰」と提案する。[ 14 ]アンドリュー・プロトキンによる別の形式は次の通りである。 「再帰が何であるかをすでに知っている場合は、答えを覚えておいてください。そうでない場合は、ダグラス・ホフスタッターにあなたよりも近くに立っている人を見つけて、その人に再帰が何であるか聞いてください。」
再帰的な頭字語もまた、再帰的なユーモアの例です。例えば、PHPは「PHP Hypertext Preprocessor(PHPハイパーテキストプリプロセッサ)」、 WINEは「WINE Is Not an Emulator(WINEはエミュレータではない)」、GNU は「GNUはUnixではない」、SPARQL は「SPARQLプロトコルとRDFクエリ言語」を表します。

再帰的に定義された集合の標準的な例は、自然数によって与えられます。
数理論理学において、ペアノ公理(ペアノの公理、あるいはペアノの公理、デデキント・ペアノの公理)は、19世紀にドイツの数学者リヒャルト・デデキントとイタリアの数学者ジュゼッペ・ペアノによって提唱された自然数の公理である。ペアノの公理は、再帰的な後続関数と、再帰関数としての加算および乗算を参照することで自然数を定義する。
もう 1 つの興味深い例は、次のように帰納的に (または再帰的に) 定義される 証明手順に基づいて定義される公理システム内のすべての「証明可能な」命題の集合です。
有限分割規則は幾何学的な再帰の一種であり、フラクタルのような画像を作成するために使用できます。分割規則は、有限個のラベルが付けられたポリゴンの集合から始まり、各ポリゴンは元のポリゴンのラベルのみに基づいて、より小さなラベル付きポリゴンに分割されます。このプロセスは反復可能です。カントール集合を作成するための標準的な「ミドルサード」手法は、重心分割と同様に、分割規則です。
関数は、それ自身を用いて再帰的に定義されることがあります。身近な例としては、フィボナッチ数列があります:F ( n ) = F ( n − 1) + F ( n − 2)。このような定義が有用であるためには、再帰的に定義されない値に還元可能でなければなりません。この場合、F (0) = 0 およびF (1) = 1 となります。
前のセクションのように、再帰的に定義された集合または関数に標準的な事例による証明手法を適用すると、構造的帰納法が得られます。これは、数理論理学やコンピュータ サイエンスで証明を導くために広く使用されている数学的帰納法の強力な一般化です。
動的計画法は、多期間または多段階の最適化問題を再帰的に表現する最適化手法です。動的計画法における重要な結果はベルマン方程式であり、これは最適化問題の以前の時点(または以前のステップ)における値を、後の時点(または後のステップ)における値で表すものです。
集合論において、これは再帰的に定義された関数が存在することを保証する定理である。集合X 、 Xの元a、関数f : X → Xが与えられたとき、 (0を含む自然数の集合を表す) 関数が唯一存在し、
任意の自然数nに対して。
デデキントは、集合論的関数の再帰による一意定義の問題を初めて提起し、1888年のエッセイ「Was sind und was sollen die Zahlen?」で議論の概要を示した。[ 15 ]
次の 2 つの関数とを取ります。
ここで、aはXの要素です。
すべての自然数 nに対してF ( n )= G ( n )であることが数学的帰納法によって証明できる。
帰納法により、すべての場合においてF ( n )= G ( n )となる。
問題を単純化するための一般的な方法は、問題を同じ種類のサブ問題に分割することです。コンピュータプログラミング技術として、これは分割統治法と呼ばれ、多くの重要なアルゴリズムの設計において鍵となります。分割統治法は、問題解決におけるトップダウンアプローチとして機能し、より小さなインスタンスを解くことで問題を解決します。これとは対照的なアプローチが動的計画法です。このアプローチはボトムアップアプローチとして機能し、望ましいサイズに達するまで、より大きなインスタンスを解くことで問題を解決します。
再帰の典型的な例は、次のPythonコード で示される階乗関数の定義です。
def factorial ( n ): n > 0 の場合: n * factorial ( n - 1 )を返す、そうでない場合: 1を返すこの関数は、入力の小さいバージョンに対して自分自身を再帰的に呼び出し、階乗の数学的定義と同様に、 基本ケースに達するまで(n - 1)再帰呼び出しの結果を で乗算します。n
コンピュータプログラミングにおける再帰の好例の一つは、関数がより単純化された、多くの場合より小さなバージョンを用いて定義される場合です。問題の解は、これらのより単純なバージョンから得られた解を組み合わせることで考案されます。再帰の応用例の一つとして、プログラミング言語のパーサーが挙げられます。再帰の大きな利点は、有限のコンピュータプログラムによって、無限の文、設計、その他のデータを定義、解析、または生成できることです。
再帰関係とは、1つ以上の列を再帰的に定義する方程式です。特定の種類の再帰関係は、「解く」ことで非再帰的な定義(例えば、閉形式式)を得ることができます。
アルゴリズムにおける再帰の使用には、メリットとデメリットの両方があります。主なメリットは通常、命令の簡潔さです。主なデメリットは、再帰アルゴリズムのメモリ使用量が急速に増加する可能性があるため、大規模なインスタンスでは実用的ではないことです。
植物や動物には、再帰的なプロセスによって形成されたように見える形状が時折見られます。例えば、1つの大きな部分が2つ以上の類似した小さな部分に枝分かれする分岐構造などが挙げられます。ロマネスコブロッコリーがその一例です。[ 16 ]
経営学では、再帰とは、大規模企業における抽象化レベルを反復するプロセスを指すことがあります。 [ 17 ]一般的な例としては、ライン管理職から上級管理職、そして中間管理職へと 至る経営階層の再帰的な性質が挙げられます。また、コーポレートガバナンスにおける資本構成というより広範な問題も包含しています。[ 18 ]

_c.1330_220x245cm._Pinacoteca,_Vatican..jpg/440px-Giotto._The_Stefaneschi_Triptych_(verso)_c.1330_220x245cm._Pinacoteca,_Vatican..jpg)
マトリョーシカ人形は再帰的な概念を物理的に表現した芸術的な例である。[ 19 ]
再帰は、1320年に制作されたジョットのステファネスキ三連祭壇画以来、絵画で使用されている。中央のパネルには、ステファネスキ枢機卿がひざまずいて三連祭壇画自体を捧げ物として掲げている姿が描かれている。[ 20 ] [ 21 ]この手法は、より一般的にはドロステ効果として知られており、ミゼ・アン・アビム技法の一例である。
MCエッシャーの版画ギャラリー(1956年)は、歪んだ都市を描いた版画で、その中にギャラリーがあり、そのギャラリーも絵を再帰的に含み、無限に続いていく。[ 22 ]
映画「インセプション」では、名詞に接尾辞-ceptionをつけて、何かの再帰を冗談めかして示す口語表現が使われた。 [ 23 ]
再帰のその他の例:ロシアのマトリョーシカ人形。人形はそれぞれ無垢材で作られているか、中が空洞で中に別のマトリョーシカ人形が入っています。