I. 再帰性の概念的基盤
再帰性という概念は、現代社会や組織、さらには人間の思考様式を読み解く上で重要なキーワードとして注目されています。本章では、この再帰性の基本的な定義、哲学的・社会学的な意義、そして心理学的な側面について考察します。
A. 定義と本質:自己参照、自己変化、そして内省
再帰性(recursiveness / reflexivity)とは、システムや思考が「自らを参照しながら自己変化する」という仕組みを指す根源的な概念です 1。例えば、「自分の考え方を考える」というメタ認知のプロセスや、「組織が自らの在り方を見直す」といった自己改革の試みがこれに該当します。この概念は哲学、社会学、認知科学、システム論など多岐にわたる分野で用いられ、自己言及、フィードバック、内省といった要素と深く関連しています。本質的には、「自分が何者であるか」を問い続け、その問いを通じて自己を変容させていくダイナミックな構造を意味します 1。情報が多層化し、複雑性が増す現代において、このような思考や組織の再帰性は、新たな知のフレームワークとしてその重要性を増しています。
再帰性の定義を試みる上で、Vitale (1989) は二つの基準を提示しました。第一に「自己参照性 (self-reference)」であり、これは対象Aがそれ自身の中に永続的な要素を持つことを意味します。第二に「レベルの段階性 (level-stepping)」であり、これは無限後退を防ぐために変化の要素が存在し、Aの中に現れる別のA(例えば、再帰呼び出しにおける次のステップのA)が元のAとは異なる側面を持つことを要求します 2。Vitaleによれば、数学における漸化式などは両基準を満たすため再帰的とされます。しかし、例えば「さつきちゃんは『ママは〈パパが浮気をした〉と思っている』と思っている」といった再帰的な心的状態の理解は、特に動詞「思っている」が変化なく反復される場合、レベルの段階性を満たさないとされました。同様に、プログラミングにおける再帰も、引数による変化がなければレベルの段階性を満たさないと論じられました 2。
しかし、このVitaleの定義にはいくつかの批判が存在します。プログラミングの文脈では、引数の有無にかかわらず一般的に再帰と呼ばれており、基準(b)の妥当性に疑問が呈されます。また、心的状態の再帰的理解においても、「思う」以外の多様な動詞が用いられ得ることや、心的状態が「M-State(belief;Satsuki;M-State(belief;Mom;))」のような自己埋め込み構造として明確に記述可能であることから、単純な反復とは異なると指摘されています 2。このような定義を巡る議論自体が、再帰性という概念の理解が自己参照的な検討(定義の提示)、批判(自己参照)、そして洗練(レベルの段階的変化)を経て進化していることを示唆しており、概念そのものの複雑性と深遠さを物語っています。
一方で、林は心理学的な観点から、再帰的な事象に対してより広範な基準を提案しています。それには、(1) あるものが何らかの意味で自分自身に帰ってくる構造を持つこと、(2) あるものがそれ自身で構成・定義されていて、自己埋め込み構造をなしていること、(3) その処理をアルゴリズム(フローチャート)によって明確に表現・定義可能であること(ただし、必ずしも計算論的な再帰処理を要求しない)が含まれます 2。この視点は、再帰代名詞のような言語現象も捉えることを可能にします。
さらに、「再帰的 (recursive)」と「再帰 (recursion)」という用語の間に区別がなされることもあります。「再帰的」とは、事象を記述した際に自己埋め込み構造となっているものを指し、情報処理的には必ずしも再帰処理によって実現される必要はありません。対して「再帰」は、自己埋め込み構造のみならず、情報処理的に再帰処理が要求される場合を指すことがあります 2。この区別は、ある構造が再帰的な特性を持つこと(例えば、マトリョーシカ人形のような入れ子構造)と、その構造を生成または処理する際に再帰的なアルゴリズムが用いられることとは必ずしも同義ではないことを示唆しています。例えば、人間が再帰的な文構造を理解する際に、コンピュータが実行するような厳密な再帰アルゴリズムを常に用いているとは限りません。この構造的再帰性と処理的再帰性の間の差異を認識することは、異なる分野で「再帰性」がどのように適用されるかを理解する上で不可欠です。
B. 哲学的・社会学的視点:複雑系と再帰的思考
現代社会や組織は、「AがBを引き起こす」という単純な因果関係では捉えきれない複雑な様相を呈しています。意図した結果が逆効果を生んだり、過去の判断が未来に予期せぬ形で再影響を及ぼしたりするなど、相互作用と非線形な変化が常態化しています 1。このような「複雑系」を理解する上で、再帰性は極めて重要な視点を提供します。なぜなら、複雑なシステムは本質的に、自らを観察し、修正し、進化していく性質、すなわち再帰的なダイナミクスを内包しているからです。組織や人間が自分自身の構造やプロセスを意識的に捉え、自己言及的なフィードバックループを組み込むことで、変化を内側から促す「メタな視点」を獲得することが可能になります 1。
このメタ視点による再帰性は、単なる分析ツールに留まらず、複雑な社会システムや組織システムにおける適応と進化のための能動的なメカニズムとして機能します。システムが自身の機能や構造について自己観察を行い(「自分を観察する自分」)、その観察結果に基づいて自身のルールや前提を再評価する(「考えることを、考え直す」)ことで、システムは環境変化に対してより柔軟に適応できるようになります 1。これは、単純なフィードバックループが既存の目標に向けて軌道修正を行うのとは異なり、ループのあり方そのもの、すなわちシステムの目標や構造自体を変革しうる、より深遠なプロセスです。
ビジネスや組織運営においても、再帰性は具体的な役割を果たします。例えば、経営者が自社の組織構造や企業文化を客観的に観察し、それに基づいて経営戦略を再定義するプロセスは、まさに再帰的なアプローチです。また、チームが「私たちの意思決定プロセスは適切か?」といった問いを通じて自らの行動様式を内省し、自律的に改善サイクルを生み出すことも再帰性の一例と言えるでしょう。個人のレベルにおいても、内省や自己理解を通じて行動を変容させる力は、再帰性に根ざしています。これは、単なるPDCAサイクルを回すことを超え、「考える枠組み自体を考え直す」という構造を持つことで、より本質的な変化と適応を可能にするのです 1。
さらに、再帰性は創造性や革新性を生み出す土壌ともなり得ます。アーティストや研究者が自らの思考プロセスや制作過程を振り返り、そこから新たな表現方法や問いを立てる行為は、再帰的な営みの一環です。ビジネスの現場においても、従来の枠組みでは解決できない問題に直面した際、「そもそも我々の前提は正しいのだろうか?」と根本から問い直すことで、固定観念を打破し、新しい視点や解決策が生まれることがあります。このような「再定義の力」は、変化の激しい現代において、組織や個人が競争力を維持し、発展していくための重要な能力となります。再帰性は、いわば「気づきを内側から引き出す」ための強力な思考フレームなのです 1。
ただし、組織における再帰性の追求が常に肯定的な結果のみをもたらすとは限りません。自己参照と自己変革のプロセスにおいて、「自己変革」の要素が弱かったり、具体的な行動への結びつきが欠如していたりする場合、再帰的な思考は「分析麻痺」や現状維持の正当化につながる可能性も否定できません。組織が絶えず自己を検証し続けるものの、効果的な変革実行メカニズムを持たない場合、内向きの議論に終始し、実質的な進展が見られないという事態も起こり得ます。したがって、実りある組織的再帰性を実現するためには、深い内省だけでなく、そこから得られた洞察を行動に移し、具体的な変化を生み出す強固な意志と能力が不可欠です。
C. 心理学的考察:再帰的な心的状態の理解
再帰性は、人間の心理、特に他者の心を理解する能力や自己認識の形成においても重要な役割を果たします。前述の「さつきちゃんは『ママは〈パパが浮気をした〉と思っている』と思っている」という例 2 は、心の理論(Theory of Mind)として知られる、入れ子構造になった心的状態の理解を示しています。このような心的状態は、形式的には「M-State(belief;Satsuki;M-State(belief;Mom;
))」のように自己埋め込み構造として記述することができ、人間の認知における構造的な再帰性の一端を示しています 2。この能力は、複雑な社会的相互作用、共感、他者の行動予測といった、人間社会を円滑に営む上で基盤となる高度な認知機能に不可欠です。
人間は構造的に再帰的な心的状態を理解できますが、その処理能力には実際的な限界が存在します。例えば、「AはBがCがDがEを…と考えていると思っている」というように、埋め込みの階層が深くなるにつれて、その内容を正確に把握し、処理することは急速に困難になります。これは、人間のワーキングメモリや情報処理能力が有限であることに起因します。数学や理論言語学における潜在的に無限の再帰とは対照的に、心理学的な再帰性の実践には認知的な制約が伴うのです。この点は、再帰性という概念を異なる領域で比較検討する際に留意すべき重要な差異です。
さらに、「自分を観察する自分」という再帰性の核心的テーマ 1 や内省のプロセスは、自己同一性(セルフ・アイデンティティ)の形成と密接に関連していると考えられます。自己同一性は静的なものではなく、経験や自己との対話を通じて絶えず変化し、発展していくものです。「私は何者か」という問いは、過去の自己に関する記憶を参照し、現在の自己を評価し、未来の自己を展望するという、本質的に自己言及的なプロセスを含んでいます。この継続的な自己参照と自己評価のループは、一貫性を保ちつつも変化し続ける自己同一性を構築・維持するための、心理学的な再帰性の一形態と言えるでしょう。
II. 計算論的再帰性:アルゴリズムから最適化まで
コンピュータサイエンスの領域において、再帰性はアルゴリズム設計の基本的な手法の一つとして広く認識されています。本章では、再帰アルゴリズムの原理、具体的な実装例、反復処理との比較、そして性能上の課題であるスタックオーバーフロー問題への対策としての末尾再帰最適化について詳述します。
A. 再帰アルゴリズムの原理と実装例 (Factorial, Fibonacci)
プログラミングにおける再帰とは、ある関数(手続きやサブルーチン)が、その定義の中で自身を呼び出すことを指します 3。つまり、Aというものを定義する際に、その定義の中にA自体が含まれるという構造です。再帰関数を正しく機能させるためには、主に二つの要素が不可欠です 4。第一に「基本ケース(Base Case)」であり、これは再帰呼び出しを停止させる条件です。例えば、階乗計算における
n=0 の場合などがこれに当たります。基本ケースが存在しないか、あるいはそこに到達できない場合、関数は無限に自身を呼び出し続け、無限ループ(無限再帰)に陥ります 5。第二に「再帰ケース(Recursive Case)」であり、これは関数が自身を呼び出す部分で、通常、引数を変化させることで基本ケースに近づいていくように設計されます。
具体的な例として、階乗(Factorial)の計算が挙げられます。n の階乗 F(n)=n! は、1 から n までの連続する整数の積として定義されます。これを再帰的に定義すると、n≥1 の場合 F(n)=n×F(n−1)、基本ケースとして F(0)=1 となります 3。これをJavaScriptで記述すると以下のようになります。
JavaScript
function f(n) {
if (n == 0) return 1; // 基本ケース
else return n * f(n – 1); // 再帰ケース
}
3
この関数 f(3) を呼び出すと、まず f(3) が 3 * f(2) を計算しようとし、そのために f(2) が呼び出されます。次に f(2) が 2 * f(1) のために f(1) を呼び出し、f(1) が 1 * f(0) のために f(0) を呼び出します。f(0) は基本ケースに合致し 1 を返します。この結果が順次上位の呼び出し元に返され、f(1) は 1×1=1 を、f(2) は 2×1=2 を、そして最終的に f(3) は 3×2=6 という結果を返します。この一連の呼び出しと値の保持は、コンピュータのメモリ内にあるスタック(LIFO: Last-In, First-Out のデータ構造)を用いて管理されます 3。
もう一つの古典的な例はフィボナッチ数列(Fibonacci Sequence)です。この数列は、1,1,2,3,5,8,… と続き、直近の2つの数を加えたものが次の数となります 3。再帰的な定義は、
F(1)=1、F(2)=1 を基本ケースとし、n≥3 の場合に F(n)=F(n−1)+F(n−2) となります 3。これをJavaScriptで記述すると以下のようになります。
JavaScript
function f2(n) {
if (n <= 2) return 1; // 基本ケース
else return f2(n – 1) + f2(n – 2); // 再帰ケース
}
3
このフィボナッチ数列の単純な再帰的実装は、再帰の持つ「エレガンスと効率のトレードオフ」を端的に示しています。数学的な定義 F(n)=F(n−1)+F(n−2) をそのままコードに落とし込めるため、非常に自然で理解しやすいという利点があります。しかし、この実装は深刻な非効率性を抱えています。例えば F(5) を計算する際、F(4) と F(3) が呼び出されます。F(4) は F(3) と F(2) を呼び出し、F(3) は F(2) と F(1) を呼び出します。この過程で F(3) が2回、F(2) が3回など、同じ値が何度も計算されることになります。3によれば、
n=30 の場合、反復処理を用いた場合の計算回数が約90回であるのに対し、この単純な再帰関数では832,040回もの呼び出しが発生します。これは、再帰が概念的な明瞭さをもたらす一方で、特に重複する部分問題を持つ場合には、計算量に関して慎重な検討が必要であることを示しています。
また、再帰呼び出しの背後にあるスタックの役割は、再帰の動作原理を理解する上で不可欠です。各再帰呼び出しは、ローカル変数、引数、そして呼び出し元に戻るためのアドレスを保存するために、コールスタック上に新しいスタックフレームを作成します 3。このメカニズムが再帰を可能にしていますが、同時に再帰の主要な制約、すなわちスタックオーバーフローの原因ともなります。再帰の深度がスタックの許容量を超えると、このエラーが発生してしまうのです 5。したがって、再帰を支えるスタックは、その強力な機能と潜在的な脆弱性の両面を併せ持っていると言えます。
B. 再帰と反復処理の比較分析
再帰は強力なプログラミングパラダイムですが、多くの場合、反復処理(ループを用いた処理)によっても同様のタスクを達成できます。両者にはそれぞれ利点と欠点があり、問題の性質や要求される性能に応じて使い分けることが重要です。
パフォーマンス:
一般的に、反復処理は関数呼び出しに伴うオーバーヘッドがないため、再帰処理よりも高速でメモリ効率が良いとされています 6。再帰呼び出しは、その都度スタックフレームの作成、引数の受け渡し、戻り値の処理といったオーバーヘッドを伴い、これが積み重なると特に再帰の深度が大きい場合に性能低下やメモリ消費増大につながります 6。
スタックオーバーフロー:
反復処理はループ制御にコールスタックを直接用いないため、処理の「深さ」が問題になることは基本的にありません 6。一方、再帰処理は呼び出しのたびにスタックフレームを消費するため、再帰の深度が非常に大きくなるとスタック領域を使い果たし、「スタックオーバーフロー」エラーを引き起こす可能性があります 5。これは、特に末尾再帰最適化(後述)が効かない環境では顕著な問題となります。
可読性:
単純な線形的処理(例えば配列の要素を順に処理するなど)では、反復処理の方が直感的で理解しやすい場合があります 6。また、処理の流れが直線的であるため、デバッグが比較的容易であるとも言えます 6。
しかし、問題の構造自体が本質的に再帰的である場合、例えば木構造やグラフの探索、分割統治法(例:クイックソート、マージソート)、あるいはハノイの塔のようなパズルでは、再帰を用いた方がコードが簡潔でエレガントになり、問題の定義とコードの構造が一致するため可読性が向上することがあります 6。このような「自然さ」は、再帰が問題の再帰的定義(例えば、「リストは要素とそれに続くリストである」「木はノードとその部分木から成る」)を直接的にコードに反映できることに由来します。反復処理で同様のことを行うには、しばしばスタックのようなデータ構造を陽に管理する必要が生じ、これがコードの複雑性を増すことがあります。
以下の表は、再帰と反復処理の主な特性を比較したものです。
表1: 再帰と反復処理の特性比較
| 特性 (Characteristic) | 再帰 (Recursion) | 反復 (Iteration) |
| パフォーマンス (Performance) | 関数呼び出しオーバーヘッドあり 6 | オーバーヘッドなし、一般に高速 6 |
| メモリ効率 (Memory Efficiency) | 各呼び出しでスタックフレーム消費 6 | メモリ使用量一定 6 |
| スタックオーバーフロー (Stack Overflow) | 深い再帰でリスクあり 5 | リスクなし 6 |
| 可読性 (Readability) | 再帰的構造の問題で簡潔・直感的 6 | 単純な問題で直感的 6 |
| コードの複雑性 (Code Complexity) | ベースケースと再帰ステップの定義が必要 4 | ループ条件と更新処理の管理 |
| 一般的なユースケース (Common Use Cases) | 木構造探索、分割統治法、数学的定義の直接実装 6 | 配列処理、単純な繰り返し |
再帰処理のパフォーマンスやスタックオーバーフローの特性は、再帰という概念自体の性質だけでなく、プログラミング言語やそのコンパイラ/インタプリタが関数呼び出しをどのように実装し、スタックをどのように管理するかに大きく依存するという点も重要です。これらの実装詳細は、再帰の実際の振る舞いを左右する「隠れた要因」であり、この認識が次に述べる末尾再帰最適化の理解へと繋がります。
総じて、再帰は問題の構造が再帰的である場合やコードの簡潔さ・エレガンスが重視される場合に適していますが、パフォーマンスのオーバーヘッドやスタックオーバーフローのリスクを考慮する必要があります。一方、反復はパフォーマンスが重要である場合、スタックオーバーフローを避けたい場合、または問題が単純でループで自然に表現できる場合に適しています 6。
C. 末尾再帰最適化:スタックオーバーフロー問題への挑戦
再帰呼び出しが関数の最後の処理として行われる場合、これを「末尾再帰(Tail Recursion)」と呼びます 7。例えば、
return sum(n – 1, res + n); という形式は末尾再帰ですが、return n + sum(n – 1); のように再帰呼び出しの結果に対してさらに演算(この場合は n との加算)が行われる場合は末尾再帰ではありません 7。
「末尾再帰除去最適化(Tail Recursion Elimination)」または「末尾呼び出し最適化(Tail Call Optimization – TCO)」とは、コンパイラが末尾再帰の形になっている関数を、内部的に反復処理(ループ)に変換する最適化手法です 7。この最適化により、再帰呼び出しの際に新たなスタックフレームを積み重ねる代わりに、現在のスタックフレームを再利用したり、引数を更新して関数の先頭にジャンプするような動作に置き換えられます 7。7では、LLVM IRレベルで末尾再帰が
call 命令ではなく br(分岐)命令、すなわちジャンプに変換される様子が示されています。
末尾再帰最適化の主な利点は以下の通りです 8。
- スタックオーバーフローの回避: 新たなスタックフレームが継続的に追加されなくなるため、深い再帰呼び出しでもスタックが枯渇する危険性が大幅に低減されます。
- メモリ効率の向上: スタックフレームの再利用により、メモリ消費量が削減されます。
- パフォーマンスの向上: スタックフレームの作成・破棄に伴うオーバーヘッドがなくなるため、実行速度が向上することが期待できます。7では、合計計算を行う関数でTCOが有効な場合、7~8倍の高速化が報告されています。
TCOは、プログラマーが再帰の持つ表現力や可読性の高さを享受しつつ、反復処理に匹敵する実行効率とスタック安全性を得ることを可能にするため、再帰のエレガンスと反復の効率性の間のギャップを埋める技術と言えます。
ただし、TCOは全てのプログラミング言語やコンパイラで一様にサポートされているわけではありません。Schemeのような一部の言語では仕様として保証されていますが、Pythonのような言語では標準的な再帰に対しては一般的に行われません。JavaScriptエンジンのサポート状況も一貫していません 8。Swiftでは、コンパイラの最適化オプションを有効にすることでTCOが適用される場合があります 7。
末尾再帰の形にするためには、しばしば関数をリファクタリングする必要があります。その際によく用いられるパターンが、「アキュムレータ(蓄積変数)」パラメータの導入です。これは、再帰呼び出し間で中間結果を保持し、引き渡すための変数です。例えば、階乗を計算する関数を末尾再帰にする場合、以下のようにアキュムレータ acc を用います 8。
TypeScript
// 通常の再帰関数(階乗計算の例)
// function factorial(n: number): number {
// if (n === 0) {
// return 1;
// } else {
// return n * factorial(n – 1); // 末尾再帰ではない
// }
// }
// 末尾再帰関数(階乗計算の例)
function factorial(n: number, acc: number = 1): number {
if (n === 0) {
return acc;
} else {
return factorial(n – 1, n * acc); // 末尾呼び出し
}
}
8
通常の再帰では n * factorial(n – 1) のように再帰呼び出しの「後」に乗算が行われますが、末尾再帰版では n * acc の計算を再帰呼び出しの「前」に行い、その結果を次の呼び出しにアキュムレータ経由で渡します。これにより、最後の操作が再帰呼び出しそのものとなり、TCOの対象となり得るのです。このアキュムレータを用いた計算の順序変更は、非末尾再帰を末尾再帰に変換するための一般的な戦略です。
III. 数学における再帰性:定義、構造、そして無限
数学の領域では、再帰性は概念の定義、数体系の構築、そしてフラクタルのような自己相似構造の記述において、根源的かつ不可欠な役割を担っています。本章では、これらの側面を掘り下げます。
A. 再帰的定義の厳密性:自然数、ペアノの公理、漸化式
数学における「再帰的定義(Recursive Definition)」または「帰納的定義(Inductive Definition)」とは、定義しようとしている概念そのものを用いて概念を定義する手法です 9。通常、初期値(基底段階)を与え、そこから後続の要素を先行する要素を用いて導出する規則(帰納段階)を示すことで構成されます。これは数学的帰納法の原理と密接に関連しています 9。
自然数(Natural Numbers)の形式的な基礎を提供するのがペアノの公理(Peano’s Axioms)です 10。主要な公理には、「
0 は自然数である」「任意の自然数 n に対して、その後者 S(n) も自然数である」「数学的帰納法の原理」などが含まれます 11。現代数学では、ジョン・フォン・ノイマンによる集合論的構成が標準的であり、自然数は再帰的に定義されます。具体的には、
0:=∅ (空集合)とし、ある数 x の後者 S(x) を S(x):=x∪x と定義します。これにより、1=S(0)=∅、2=S(1)=∅,∅、3=S(2)=∅,∅,∅,∅ というように、無限に続く自然数の集合が生成されます 11。この構成は、まさに自己参照的な仕方で数が次々と生み出される様子を示しています。
この再帰的に定義された自然数の上で、加法や乗法といった基本的な算術演算もまた再帰的に定義されます 11。
- 加法:
- n+0=n
- n+S(m)=S(n+m)
- 乗法:
- n⋅0=0
- n⋅S(m)=(n⋅m)+n
これらの定義の存在と一意性は、「回帰定理(Recursion Theorem)」によって保証されます。回帰定理は、集合 X の元 x と写像 g:X→X が与えられたとき、f(0)=x かつ f∘S=g∘f を満たす写像 f:N→X が一意的に存在することを示します 11。これにより、ペアノの公理系に基づいて、算術演算が矛盾なく定義できることが数学的に裏付けられます。このように、自然数そのものの構成から基本的な演算に至るまで、再帰性が算術のまさに基盤を成していることがわかります。
「漸化式(Recurrence Relations)」は、数列の各項を先行する項の関数として定義する数式であり、再帰的定義の直接的な応用例です 12。例えば、
S0=0 という初期条件のもとで、Sn=Sn−1+n (n>0) と定義される数列などがこれに該当します。
なお、10で指摘されているように、「数学的帰納法」と「再帰的定義」は区別されるべき概念です。数学的帰納法は証明の「方法」であるのに対し、再帰的定義は定義の「方法」です。ペアノの公理には数学的帰納法の原理が含まれていますが、再帰的な定義が可能であること(すなわち、そのような定義が一意的な関数を定めること)は、別途(通常は回帰定理によって)示される必要があります。
再帰的定義の力は、有限個の規則(基底段階と帰納段階)を用いて、無限個の対象(例えば、全ての自然数や数列の全項)を厳密に定義できる点にあります。自然数は無限に存在しますが、その構造は有限なペアノの公理と再帰的な後者関数によって捉えられています 11。これは、有限の記述が無限の領域を包含するという、形式システムの強力な側面を示しています。
B. フラクタル幾何学:自己相似性の無限の美
フラクタル(Fractal)とは、フランスの数学者ブノワ・マンデルブロによって導入された幾何学の概念で、図形の部分と全体が自己相似(再帰的)になっているものを指します 13。この「自己相似性(Self-Similarity)」とは、図形の一部を拡大すると、それが図形全体と似た形になるという性質です 14。自然界には、雪の結晶、シダ植物の葉、海岸線、山脈の形状など、フラクタル的な特徴を持つものが数多く存在します。ロシアのマトリョーシカ人形のように、大きな人形の中に同じ形の小さな人形が、そのまた中にさらに小さな人形が…と繰り返される構造は、自己相似性の分かりやすいアナロジーです 14。
フラクタルの生成には、しばしば再帰的なアルゴリズムが用いられます。図形の自己相似的な性質が、再帰的な定義や処理と非常に相性が良いためです 14。代表的な例として「シェルピンスキーの三角形(Sierpinski Triangle)」があります。これは、まず大きな三角形を描き、次にその中央部分に逆向きの三角形を描いて除去し、残った3つの小さな三角形それぞれに対して同じ操作を再帰的に繰り返すことで生成されます 14。この単純な再帰的ルールを繰り返し適用することで、無限に続く複雑で美しい模様が生み出されます。
フラクタルは、自然界に見られる複雑な形状やパターンをモデル化するのに役立つだけでなく、実用的な応用も持っています。「フラクタル圧縮(Fractal Compression)」は、画像の自己相似性を利用した画像圧縮技術の一種です。画像を小さなブロックに分割し、各ブロックが画像全体の他の部分と(拡大・縮小・回転などの変換を施した上で)相似であることを見つけ出し、その変換情報を記録することでデータを圧縮します 14。高い圧縮率を達成できる可能性がある一方で、エンコードやデコードに計算時間を要するという特徴があります 14。
フラクタルはまた、フィボナッチ数列や黄金比とも深い関係があるとされ、ひまわりの種の配列や松ぼっくりの鱗片の並び方など、自然界の造形美の中にもその関連性が見出されます 13。このように、フラクタルは、単純な再帰的規則が驚くほど複雑で美しい構造を生み出すことを示しており、数学的な対象であると同時に、自然界の生成原理や芸術的表現にも通じる普遍的な概念であると言えます。
フラクタルの研究は、決定論的な再帰的規則から、一見ランダムで不規則に見える複雑な構造が生じることを明らかにしました。シェルピンスキーの三角形の生成プロセスは完全に決定論的ですが 14、その結果として得られる図形は非常に複雑な様相を呈します。これは、自然界に見られる海岸線や山脈のような不規則な形状も、その背後には何らかの(あるいは複数の)再帰的な成長プロセスや形成原理が働いている可能性を示唆しています。決定論的な再帰が、確率的な過程を模倣するような結果を生み出し得るという事実は、複雑な現象の理解に対する新たな視点を提供します。
IV. 言語の再帰性:無限の表現力を生み出すメカニズム
言語学、特にノーム・チョムスキーによって提唱された生成文法の理論において、再帰性は人間の言語が持つ最も根源的かつ強力な特性の一つとして位置づけられています。本章では、チョムスキー理論における再帰性の役割と、それが構文木や埋め込み構造を通じてどのように無限の文生成を可能にするのかを解説します。
A. チョムスキー理論における再帰性の役割
チョムスキーは、人間の言語能力の核心に再帰性が存在すると主張しました。再帰性とは、言語が潜在的に無限の複雑な構造を持つことを可能にする性質であり、限られた数の単語と文法規則から、無限の数の文を生成する能力の源泉であるとされます 15。例えば、文の中に別の文を埋め込んだり、句の中に同じ種類の句を入れ子にしたりすることが、再帰性によって可能になります。
この無限の文生成能力は、チョムスキーが提唱した「普遍文法(Universal Grammar – UG)」という概念と密接に関連しています。普遍文法とは、全ての人間の脳に生得的に備わっているとされる、言語の基本的な構造や原理のことであり、再帰性もその重要な構成要素の一つと考えられています 15。この生得的な言語能力(言語獲得装置 – LADとも関連付けられる)により、子どもは限られた言語入力(周囲の人が話す言葉)から、その言語の複雑な規則体系を習得し、これまで聞いたことのない新しい文を自由に生成したり理解したりすることができるとされます 15。
チョムスキーはまた、言語の構造を数学的に記述する「形式言語理論(Formal Language Theory)」を言語学に導入しました。彼は、文法を記号操作の規則の集合として定義し、これらの規則(特に再帰的な規則)を適用することで、理論上無限個の文を生成できることを示しました 15。再帰性が無限の文生成を可能にする具体的な仕組みは、文法規則がそれ自身の出力に対して繰り返し適用され得るという点にあります。例えば、「文(S)は名詞句(NP)と動詞句(VP)から成る」という規則があり、さらに「動詞句(VP)は動詞(V)と文(S)から成る」(例:「ジョンは[メアリーが出発した]と言った」)という規則が存在する場合、文の中に文を埋め込むことができ、この埋め込みは理論上何回でも繰り返すことができます。15で示された「太郎は[花子が[犬が吠えるのを見た]と言った]と信じている。」という文は、このような入れ子構造の典型例です。
この言語の再帰性は、単なる構造的特徴に留まらず、人間の言語が持つ無限の表現力と創造性のまさに「エンジン」であると言えます。動物のコミュニケーションシステムが通常、特定の刺激に結びついた限られた数の信号から成るのに対し、人間の言語は再帰性によって、新しい状況や複雑な思考を表現するために、既存の要素を柔軟に組み合わせて無限に新しい文を生み出すことができます。この開かれた創造性こそが、人間の言語を他のコミュニケーションシステムから区別する本質的な特徴であり、再帰性がその中核を担っているのです。
さらに、言語における再帰性の能力は、言語処理に限定されず、より広範な人間の認知能力の発達における重要な飛躍であった可能性が示唆されます。階層的な構造を生成し理解する能力は、複雑な計画の立案、入れ子になった目標の設定、社会構造の理解など、言語以外の高次認知機能にも不可欠です。したがって、言語的再帰性は、思考の再帰性(思考について考える、アイデアの中にアイデアを埋め込む)といった、より一般的な認知的再帰能力の表れであるとも考えられ、抽象的思考や高次の意識の基盤となっている可能性があります。
B. 構文木と埋め込み構造:文生成の階層性
文の構造を視覚的に表現するために用いられるのが「構文木(Syntactic Tree)」または「解析木(Parse Tree)」です。構文木は、文がどのように単語や句(フレーズ)から階層的に構成されているかを示す木構造の図であり、内部ノードが句(名詞句NP、動詞句VP、前置詞句PPなど)を表し、葉ノードが個々の単語を表します 17。30では、S(文)、NP、VPといったラベルを持つ構文木の例と、VP(動詞句)再帰について言及されています。
言語における再帰性は、構文木において「埋め込み構造(Embedding)」または「入れ子構造(Nested Structure)」として顕著に現れます 19。これは、ある言語単位(例えば、節や句)が、同じ種類またはより大きな単位の内部に含まれる構造を指します。例えば、「[犬が追いかけた]猫が逃げた」という文では、「犬が追いかけた」という関係節が名詞句「猫」の中に埋め込まれています。19では、埋め込みの深さが増すにつれて、特定の言語的標識が変化する可能性について議論されています。
構文木は、言語の再帰性を視覚的に証明する強力なツールです。あるノードのタイプ(例えばSやNP)が、同じタイプのノードの子孫として再び現れる場合、それは文法規則の自己参照的な適用、すなわち再帰を示しています。例えば、文Sノードが子として動詞句VPノードを持ち、そのVPノードがさらに子として別のSノード(埋め込み節を表す)を持つといった構造は、構文木上で明確に再帰的な関係性として図示されます。
チョムスキー理論ではまた、文の表面的な形式である「表層構造(Surface Structure)」と、その背後にあるより抽象的な意味関係を表す「深層構造(Deep Structure)」が区別され、これらの間には「変換規則(Transformational Rules)」(その一部は再帰的であり得る)が介在すると考えられました 21。
しかしながら、文法が理論上許容する無限の埋め込み能力と、人間が実際に容易に処理できる能力との間にはギャップが存在します。特に、「中心埋め込み(Center-Embedding)」と呼ばれる構造(例:「猫が犬が鼠を追いかけたのを見た」のような文で、「犬が鼠を追いかけた」が「猫が…のを見た」の中心に埋め込まれる)が複数重なると、文法的には正しくても人間にとっては理解が著しく困難になります。これは、普遍文法が許容する「言語能力(Competence)」と、ワーキングメモリなどの認知的制約を受ける実際の言語運用(Performance)との間の差異を示すものであり、心理学的な再帰性の限界とも関連します。また、複雑な再帰的埋め込みは、文が複数の構文解析(複数の構文木)を許容する「統語的曖昧性」を増幅させる可能性もあります 21。
V. 芸術における再帰性:視覚的パラドックスと無限の表現
芸術の領域においても、再帰性はアーティストたちによって探求され、自己言及、無限後退、知覚的パラドックスといったテーマを内包する作品が生み出されてきました。本章では、特にドロステ効果とM.C.エッシャーの作品を通じて、芸術における再帰性の表現を探ります。
A. ドロステ効果:自己言及的なイメージの連鎖
「ドロステ効果(Droste Effect)」とは、ある絵がそれ自身の内部に、より小さなスケールで再び現れるという視覚効果を指し、この繰り返しによって無限に続くかのような印象を与えるものです 22。この名称は、オランダのドロステ社のココアの箱に、ココアの箱を持つ女性が描かれ、その箱の中にもまた同じ絵が…というデザインが用いられていたことに由来します。
この効果の原理は、しばしば2枚の鏡を向かい合わせに置いたときに生じる現象に例えられます。鏡がお互いを映し合うことで、無限に続くトンネルのような光景が現れるのと同様の自己言及的な連鎖です 22。
ドロステ効果を単純に作成する方法としては、まず元となる画像(例えば、額縁を持っている人物の写真)を用意します。次に、画像編集ソフトウェア(例:Photoshop)でキャンバス全体を選択してコピーし、それを縮小して元の画像内の額縁の部分にペーストします。この操作を、画像が識別できなくなるまで繰り返すことで、基本的なドロステ効果が得られます 22。また、ビデオカメラをそれが捉えた画像を映しているモニターに向ける(ビデオフィードバック)ことでも、同様の効果を作り出すことができます 24。
ドロステ効果には様々なバリエーションがあり、単純な繰り返しだけでなく、螺旋状に画像が収束していくものや、より複雑な幾何学的変換を伴うものも存在します。これらを正確に描画するためには、専用のコンピュータアルゴリズムが必要となることもあります 22。アーティストは、繰り返されるイメージのより深い階層で意図的な変化(例えば、内側の画像で被写体の向きを変えるなど)を加えることで、鑑賞者に驚きや新たな視点を提供することもあります 22。
ドロステ効果は、抽象的な「無限」という概念を、具体的で視覚的に魅力的な形で表現する手段となります。画像が自身を内包し、それが無限に繰り返されるかのような光景は、たとえ実際には解像度の限界によって途中で途切れるとしても、鑑賞者に無限の連鎖を強く示唆します 22。これにより、数学や哲学の領域で議論される無限性が、より直感的で体験的なものとして捉えられるようになります。
また、単純なドロステ効果は制御された反復プロセスによって生み出されますが 22、アーティストが意図的な変奏を加えたり、より複雑なアルゴリズムを用いたりすることで、予測不能なパターンや「驚き」が生まれることがあります 22。これは、数学におけるフラクタルが単純な再帰的規則から複雑で時に予測不能に見える出力を生み出すのと類似しています。このような芸術的介入は、単なる機械的な無限反復に留まらず、再帰性を表現媒体として用い、作品に深みと意図性をもたらします。
B. M.C.エッシャーの作品に見る再帰的テーマ
オランダの版画家マウリッツ・コルネリス・エッシャー(M.C. Escher, 1898-1972)は、「視覚の魔術師」とも称され、あり得ない構造物、変容する図形、無限の表現などをテーマとした作品で世界的に知られています 25。彼の作品群には、再帰性の概念が様々な形で巧みに織り込まれています。
代表作の一つである「描く手(Drawing Hands)」(1948年)は、2つの手が互いを紙上に描き合っているという構図です 26。これは、創造の行為そのものが自己言及的なループを形成している様を視覚化したものであり、どちらの手が先に存在したのかというパラドックスを提示します。描く主体と描かれる客体が一体化し、創造者と被創造物の境界が曖昧になるこの作品は、自己参照システムの典型例です。26では、「描く手」における自己再帰的パラドックスは「不可視な段階に止まっていた」と評され、これは作品が概念的な再帰性を示唆しつつも、そのパラドックスが作品空間内で視覚的に完全に解決されているわけではないことを意味する可能性があります。これに対し、同じくエッシャーの「版画画廊(Print Gallery)」(1956年)では、「空白の領域で客体と主体は等価の原理によって融合する構造にまで視覚化された」とされ 26、作品自体が歪みながら自己を内包し、画廊の訪問者がその絵を見ているという、より深遠な自己言及構造が実現されています。
「滝(Waterfall)」(1961年)では、水路を流れる水が水車を回し、滝となって落下した後、再び水路のより高い位置に戻って循環するという、永久機関のような不可能な構造が描かれています 25。この作品は、重力や高低差の法則を無視しており、現実世界ではありえない現象を二次元平面上に巧みに表現しています。
「物見の塔(Belvedere)」(1958年)は、ネッカーの立方体のような錯視を利用し、建築的に矛盾した構造を持つ塔を描いています 28。例えば、中央の梯子は建物の内側から伸びているように見えると同時に、外壁にもたれかかっているように描かれています。柱の繋がりや床の向きも、局所的には正しく見えても全体としては破綻しており、鑑賞者は視覚的な手がかりと論理的な理解の間で混乱をきたします。塔の前で不可能な立方体を持つ人物は、このテーマをさらに強調しています 28。
エッシャーのこれらの作品は、単に静的なイメージとして存在するだけでなく、鑑賞者の認知プロセスを積極的に巻き込むダイナミックな体験を提供します。「滝」や「物見の塔」のような作品は、視覚的には一貫しているように見えながらも論理的には不可能なシナリオを提示することで、鑑賞者の心の中で知覚と論理の間の葛藤を引き起こします。鑑賞者は、描かれた不可能性を解決しようと、イメージ全体と矛盾した部分とを繰り返し往復して思考する、一種の再帰的な精神活動へと誘われます 28。これにより、鑑賞者は作品の再帰性の受動的な観察者ではなく、能動的な参加者となるのです。
「描く手」や「版画画廊」のような作品では、エッシャーは観察者/創造者が観察されるもの/創造されるものの一部となり得るという再帰的なアイデアを探求し、主体と客体、あるいは芸術家と作品といった基本的な区別に挑戦しています。この主体と客体の境界の曖昧化は、再帰性が芸術表現において持つ深遠な可能性を示しています。
VI. 再帰性の学際的探求と展望
これまでの章で見てきたように、再帰性は哲学、コンピュータサイエンス、数学、言語学、芸術、心理学といった多様な分野において、それぞれ特徴的な形で現れ、重要な役割を果たしています。本章では、これらの分野横断的な洞察を統合し、再帰性研究の今後の展望について考察します。
A. 分野横断的な洞察と比較
再帰性の概念は、その具体的な現れ方や重視される側面において分野ごとに差異が見られるものの、その根底には「ある実体、プロセス、または定義がそれ自身に言及する」という自己参照の共通の糸が存在します。
表2: 主要分野における「再帰性」の概念と代表例
| 分野 (Field) | 主要な顕現形態 (Core Manifestation) | 代表例 (Prominent Example) | 関連資料 (Relevant Sources) |
| 哲学/社会学 (Philosophy/Sociology) | 自己省察、フィードバックによるシステム変化、メタ認知 1 | 「自分を観察する自分」、組織の自己改革 1 | 1 |
| 計算機科学 (Computer Science) | 自己呼び出し関数、スタック処理、終了条件 3 | 階乗計算、フィボナッチ数列、クイックソート 3 | 3 |
| 数学 (Mathematics) | 再帰的定義、自己相似構造、漸化式 9 | 自然数のペアノ定義、フラクタル図形 11 | 9 |
| 言語学 (Linguistics) | 埋め込み構造による無限の文生成、階層的構文 15 | 「彼が[彼女が知っていると言った]本」 15 | 15 |
| 芸術 (Art) | 自己言及的イメージ、無限後退、視覚的パラドックス 22 | ドロステ効果、M.C.エッシャーの「描く手」 22 | 22 |
| 心理学 (Psychology) | 入れ子状の心的状態の理解、自己同一性 1 | 「AはBがCを欲していると考えている」 2 | 1 |
各分野における再帰性の強調点には以下のような特徴が見られます。
- コンピュータサイエンス: アルゴリズムの効率性、停止条件(基本ケース)、スタック管理、そして末尾再帰最適化のような変換技術に焦点が当てられます。
- 数学: 有限の規則からの無限集合や数列の厳密な定義、フラクタルのような構造的自己相似性が中心となります。
- 言語学: 無限の表現を生み出す生成力、階層的な構造化、そして生得的な認知能力としての側面が探求されます。
- 哲学・社会学(再帰性/リフレキシビティ): 自己認識、システムや個人の変化を促すフィードバックループ、メタ認知が重要なテーマです。
- 芸術: 無限性、パラドックス、自己参照の視覚的表現、そして鑑賞者の知覚への働きかけが試みられます。
- 心理学: 入れ子構造の心的状態の理解(心の理論)、自己同一性の形成プロセス、再帰的構造を処理する際の認知的限界などが研究対象となります。
Vitaleが提唱した「レベルの段階性」すなわち変化の要素 2 は、社会システムが適応し変化する必要性や、コンピュータプログラムが無限ループに陥らずに終了する必要性など、一部の領域では極めて重要です。一方で、芸術における無限後退の表現や、数学における自己相似性(スケールは変化するが形状は変化しない)のように、この「変化」の性質が異なる形で焦点となるか、あるいはその欠如自体が探求の対象となる領域も存在します。
これらの多様な現れ方を通じて、再帰性は単純な自己参照を超え、複雑性を生成、記述、あるいは管理するための基本的なメカニズムとして機能していることが明らかになります。コンピュータサイエンスでは複雑なアルゴリズムが再帰呼び出しから構築され、数学では無限集合や複雑なフラクタルパターンが単純な再帰的定義から生じ、言語学では言語の無限の複雑性が再帰的な文法規則によって生成されます。社会学や哲学では、複雑な適応システムが再帰的なプロセスを通じて変化し進化します。この普遍性は、再帰性が特定の分野のツールや特徴であるだけでなく、形式的、自然的、社会的な複雑システムがしばしば組織され、作動する際の根源的な原理であることを示唆しています。
また、芸術(エッシャーの作品やドロステ効果)や論理学における自己言及的言明が引き起こすパラドックスなどに見られるように、再帰性がもたらす無限ループやパラドックスに対する人間の強い関心も注目に値します。エッシャーの作品が持つ心を揺さぶるような性質 25 や、ドロステ効果の持つ本質的な魅力 22、そして「嘘つきのパラドックス」のような自己参照に基づく哲学的パラドックスが何世紀にもわたって議論されてきた事実は、無限性、自己参照、そして論理システムの限界といった概念に対する人間の根源的な好奇心を反映していると言えるでしょう。
B. 再帰性研究のフロンティア
再帰性の探求は未だ尽きることなく、多くの分野で新たな研究フロンティアが拓かれています。
- 認知科学: 人間の脳がどのように再帰的処理を実行しているのか、その進化的起源、そして意識や高次思考との関連性についてのより深い理解が求められています。
- 人工知能(AI): 問題解決、深い埋め込み構造を持つ自然言語の理解、創造的なコンテンツ生成のために再帰的推論を活用できる、より洗練されたAIの開発が進められています。
- 複雑系モデリング: 社会、経済、生態系といった複雑なシステムをより良くモデル化し、影響を与えるために、特に持続可能性やレジリエンスの観点から、リフレキシビティ(再帰的省察性)の原理を応用する研究が期待されます。
- 計算理論: ハイパー再帰や超限再帰といった、既存の計算モデルの限界や新たな計算形態に関する探求も、より専門的かつ投機的なフロンティアとして存在します。
これらのフロンティアにおいて、人間における再帰的認知の理解と、機械における再帰の実装は、相互に影響を与えながら進化していくと考えられます。人間の言語における再帰性の理解 15 はAIにおける自然言語処理技術の発展に寄与し、逆に、深い再帰を扱えるAIモデルは複雑な人間の推論プロセスを模倣したり、その解明に貢献したりする可能性があります。また、AIを用いた計算モデルは、再帰的な社会システム 1 のシミュレーションや理論検証に役立つかもしれません。このようなフィードバックループを通じて、人間の再帰性理解と機械による再帰性実装は共進化していくでしょう。
一方で、AIや社会モデリングが再帰性やリフレキシビティの利用において高度化するにつれて、新たな倫理的考察も必要となります。自律的な意思決定、社会への影響力、そして複雑な社会技術システムにおける意図しないフィードバックループの可能性など、特に人間とAIが混在するシステムにおける再帰的相互作用が引き起こしうる予期せぬ連鎖的影響については、慎重な検討が求められます。
VII. 結論
本報告では、「再帰性」という多面的な概念について、その定義、哲学的・社会学的意義、計算論的側面、数学的基礎、言語における役割、芸術における表現、そして心理学的考察に至るまで、学際的な視点から探求を行いました。
再帰性の核心には「自己参照」があり、これが様々な形で「自己変化」「構造の生成」「無限の表現」といった現象を引き起こします。哲学や社会学では、システムが自らを省み変化するリフレキシビティとして捉えられ、複雑な現代社会を理解し、適応するための鍵となります。コンピュータサイエンスでは、アルゴリズム設計の強力な手法として、またその効率化(末尾再帰最適化など)が重要な課題とされます。数学においては、自然数のような基本概念の定義から、フラクタルのような無限の複雑性を持つ構造の生成に至るまで、再帰性が基礎的な役割を果たしています。言語学では、チョムスキー理論を中心に、人間言語が持つ無限の創造性の源泉として再帰性が位置づけられています。芸術においては、M.C.エッシャーの作品やドロステ効果に見られるように、無限性やパラドックスを視覚的に探求する手段として用いられてきました。心理学では、他者理解や自己同一性の形成に関わる認知プロセスとして研究されています。
このように、再帰性は個別の学問領域を超えて普遍的に見出される根源的な原理であり、単純な規則から複雑な現象や構造が生み出されるメカニズムを理解する上で不可欠です。それは、エレガントな解決策や深遠な洞察をもたらす一方で、計算上の非効率性、論理的パラドックス、あるいは人間の認知限界といった課題も提示します。
再帰性の探求は、人間知性の本質、複雑な世界の成り立ち、そして創造性の源泉に迫る試みであり、今後も認知科学、人工知能、複雑系科学などのフロンティア領域において、その理解と応用が進展していくことが期待されます。再帰性というレンズを通して世界を見ることは、我々自身と我々を取り巻くシステムに対するより深い洞察を与え続けてくれるでしょう。
引用文献
- 再帰性とは?現代社会で役立つ複雑系を読み解く思考のフレーム … https://bizdev-career.jp/2025/04/23/recursiveness/
- 再帰的な事象についての心理学的考察 – 京都大学学術情報リポジトリ https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/57486/1/eda049_290.pdf
- 再帰アルゴリズム<アルゴリズム<Web教材<木暮 – 木暮 仁 http://www.kogures.com/hitoshi/webtext/al-recursive/index.html
- 【JavaScriptの応用】再帰の考え方と関数 | ワードプレステーマTCD https://tcd-theme.com/2022/08/javascript-recursion.html
- 10分で説明する 再帰関数 – 職業エンジニアのレシピ帖 – https://etoile-engineer-blog.com/3%E5%88%86%E3%81%A7%E8%AA%AC%E6%98%8E%E3%81%99%E3%82%8B-%E5%86%8D%E5%B8%B0%E9%96%A2%E6%95%B0/
- コンピュータサイエンスにおける再帰の理解 #プログラミング – Qiita https://qiita.com/generosity-naman/items/460419303e6548e356d0
- Swiftにおける末尾再帰とCompilerによる最適化を探る | メルカリ … https://engineering.mercari.com/blog/entry/2019-12-16-081047/
- TypeScriptにおける末尾再帰最適化の理解と実践 #プログラミング … https://qiita.com/yuu_7_ns/items/9a58063fc5b745b55fb2
- 9.再帰的定義 http://www.ai.lab.uec.ac.jp/wp-content/uploads/2019/12/f1e6e8128ec6991faa2acde81ffe6f67.pdf
- 形式的なペアノの公理で誤解しやすいポイント – Mathlog https://mathlog.info/articles/1290
- ペアノの公理 – Wikipedia https://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%A2%E3%83%8E%E3%81%AE%E5%85%AC%E7%90%86
- 再帰的関数 https://www.kushiro-ct.ac.jp/yanagawa/C-2017/18-0621/index.html
- フラクタルについて|ふぅみこ – note https://note.com/chicachu/n/nbdfe253e17c5
- フラクタルとコンピュータープログラミング – 2025 https://saycon.co.jp/archives/neta/fractal
- チョムスキーの普遍文法って、あり?ーChatGPTに聞いてみた021 … https://note.com/ryu2net/n/n728ddbad8cf8
- 認知文法の思考法|第6回 心の中のマトリョーシカ|町田章 | 未草 – ひつじ書房 https://www.hituzi.co.jp/hituzigusa/2020/04/07/cogai-06/
- 機械翻訳の仕組み~直訳タイプと意訳タイプ、ニューラル翻訳とは?~ | ブログ https://www.science.co.jp/nmt/blog/33792/
- 3 章 構文解析 https://www.ieice-hbkb.org/files/02/02gun_10hen_03.pdf
- 日本語の句構造規則 https://tsukuba.repo.nii.ac.jp/record/6287/files/8.pdf
- GDA Corpus Browser — Syntactic Tree – 構文木の表示 https://www.gsk.or.jp/tools/gdacb/manual/syn_tree.html
- Syntax tree diagrams | PPT – SlideShare https://www.slideshare.net/slideshow/syntax-tree-diagrams/75652093
- ドロステ効果の作り方 | Adobe https://www.adobe.com/jp/creativecloud/photography/discover/droste-effect.html
- どこまでも同じ絵が続く「ドロステ効果」を使ったアートいろいろ – GIGAZINE https://gigazine.net/news/20070905_droste_effect/
- ドロステ効果 – Wikipedia https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%AD%E3%82%B9%E3%83%86%E5%8A%B9%E6%9E%9C
- エッシャーのだまし絵の秘密を解説!代表作も紹介 – Artis https://media.artis.inc/guide/what-is-art/1999/
- 芸術と科学 – Tensegrity Precession – シナジェティクス研究所 https://synergetics.jp/tensegrityblog/category/artandscience/
- だまし絵の巨匠が描いた《滝》|コラム – 諸橋近代美術館 https://dali.jp/archives/column/2952
- 芸術鑑賞 M.C.エッシャー《物見の塔》|岡本かのん – note https://note.com/okamotokanon/n/n01e69a9fa787
- 騙し絵の中に入り込んだM・Cエッシャーの本当 – Epokal エポカル https://epokal.com/blue_column/3358
- Tree Syntax of Natural Language – CS@Cornell https://www.cs.cornell.edu/courses/cs474/2004fa/lec1.pdf


