相互再帰のソースを表示
←
相互再帰
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{出典の明記|date=2018年10月3日 (水) 05:01 (UTC)}} '''相互再帰'''(そうごさいき、{{lang-en-short|mutual recursion}})は[[再帰]]の一種であり、直接的にそれ自身に対する再帰になっているのではなく、複数の[[サブルーチン|関数]]などの間で相互に再帰になっているものである。 == 数学 == 以下の関数 A(x) と B(x) は相互再帰である。 <math>A(x)=\begin{cases} 1 & , x\le1 \\ B(x+2) & ,x>1\end{cases}</math> <math>B(x)=A(x-3)+4</math> 方程式によっては、相互再帰は、[[複雑系]]や[[カオス理論]]へとつながることもある。 == プログラミング言語 == {{ウィキプロジェクトリンク|数学|[[画像:Nuvola apps edu mathematics blue-p.svg|34px|Project:数学]]}} {{ウィキポータルリンク|数学|[[画像:Nuvola apps edu mathematics-p.svg|34px|Portal:数学]]}} 相互再帰は[[関数型言語|関数型プログラミング]]では非常に一般的で、[[LISP]]、[[Scheme]]、[[ML (プログラミング言語)|ML]]などの[[プログラミング言語]]でのプログラムに多く使われている。[[Prolog]]のような言語では、相互再帰の使用は避けられない。[[再帰下降構文解析|再帰下降パーサ]]など、[[手続き型プログラミング]]でも使われる手法である。 [[プログラミング作法|プログラミングスタイル]]によっては、相互再帰を禁止することもある。というのも、無限に再帰呼び出しし続けるコードを書かないようにすることも、そのようなコードを検出して修正することも難しいためである。<!-- [[参照透過性]]の成立している言語では、相互再帰はあまり問題を生まないが、破壊的操作を行う関数同士で相互再帰を行うと、ロジックが複雑になりすぎて、カオス(混沌)となり、[[バグ]]の温床となることが多い。 --><!-- ↑いや、世の中にC言語で書かれたパーサーとかゴマンとあるでしょ? 何を言っているのかわからない。 --> {{Software-stub|そうこさいき}} {{DEFAULTSORT:そうこさいき}} [[Category:計算理論]] [[Category:再帰]] [[Category:数学に関する記事]]
このページで使用されているテンプレート:
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Software-stub
(
ソースを閲覧
)
テンプレート:ウィキプロジェクトリンク
(
ソースを閲覧
)
テンプレート:ウィキポータルリンク
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
相互再帰
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報