再帰呼び出し、よく使う?使わない?

2015年2月12日 09:15

本家/.「AP Test's Recursion Examples: An Exercise In Awkwardness」より FacebookのAP Computer Sicence(大学先修課程のコンピューターサイエンス科目)グループ(非公開)に投稿された、再帰呼び出しを使って0から6の数字を出力するコード例について、「APの試験で粗末なコーディング技術が使われていることを示す例がまた現れた」とAlfred Thompson氏が皮肉った。Thompson氏は「我々はしばしば、コード例に理想的ではないコーディング技術を使わざるを得ないこともある」と指摘。「通常は使うことのないコードを例にするのは、物事を明確にし、特定の概念を説明するためだ。特に再帰呼び出しを必要とする例はかなり複雑になる傾向があるので、このようなコード例は再帰呼び出しの解説で多く使われているようだ。」という。「0123456」を出力するためにループではなく再帰呼び出しを使用しているのは再帰呼び出しの処理を教えるためではあるのだが、Thompson氏はこれも粗末なコーディング技術の例であると主張する。

ただし、「再帰呼び出しで反復処理を行うのが一般的な関数型プログラミングを学んできた人は、当然これに同意しないだろう。」と付け加える。「金槌しか持っていなければ、すべての問題が釘に見えるなどと言われるが、再帰呼び出しとループの問題も同様だ。反復処理のために最初に選んだ(または最初に学んだ)のがループであれば、再帰呼び出しを解決方法だとは思わない傾向がある。同様に(関数型プログラミングで一般的な)再帰呼び出しから始めたのであれば、再帰呼び出しが反復処理のためのものだと考えるだろう。」とのことだ。皆さんの場合、再帰呼び出しをよく使う傾向があるだろうか。それとも避ける傾向があるだろうか。

 スラッシュドットのコメントを読む | デベロッパーセクション | プログラミング | 教育 | デベロッパー

 関連ストーリー:
ワシントン州、大学入学に必要な外国語科目としてコンピューターサイエンス科目を履修できるようにする法案 2015年02月07日
Pascalは過小評価されている 2015年01月28日
初めて学ぶプログラミング言語としてはPythonよりもVBの方が適切? 2015年01月23日
プログラミング言語がソフトウェアの品質に与える影響 2014年11月08日
絶滅しそうなプログラミング言語は? 2014年10月11日
悩まされてしまうプログラミング言語の奇妙な特徴は? 2014年09月06日
「世界一IQの低い」ソースコード 2014年08月05日
/.Jに聞け:コメントにおける変なルールって? 2012年08月16日
酷いコードを収集する「ウンコード・マニア」 2012年08月14日
#俺が見たクソコード選手権、Twitterで盛り上がる 2012年04月03日
英国の試験委員会、初級コンピュータサイエンスから C や PHP を除外 2010年05月17日

 

関連記事

最新記事