アカウント名:
パスワード:
再帰的なデータ構造を扱うとき(ツリーをトラバースするときなど)は、再帰呼び出しを直接使うことがあります。
その他、末尾呼び出しがスタックフレームを消費しない言語を使うときは、継続条件が繰り返しの途中に現れるようなループを書く際に、再帰呼び出しを直接使います。
より抽象化された高階関数などが使える時は、当然ながらそちらを使うべきだと思います。
>再帰的なデータ構造を扱うとき(ツリーをトラバースするときなど)は、再帰呼び出しを直接使うことがあります。これは再帰を使わないほうが難しいね
再帰呼び出しを使った方が簡単になるのなら迷わず使います。再帰的なデータ構造なんかはその最たる例ですね。
関数型言語もかじってるので、ループを再帰で実現するってのも一応わかります。末尾再帰もね。schemeなんかやったから「プリミティブは少ない方がいい教」の信者でもあります。なのでループを再帰呼び出して実現するなpgrって意見には与しません。とか言いつつ普段はRubyとPHPでプログラム組んでるので背教者かもしれません。
> より抽象化された高階関数などが使える時は、当然ながらそちらを使うべきだと思います。
関数型言語のコミュニティでも、再帰呼び出しを直接書くのは好ましくないスタイルとされているはずですケースバイケースですけども、mapやfoldrが使えるのにオレ再帰は歓迎されません
個人的な印象だと、動作や検証などフローに着眼するものは高階関数より再帰の書き下しのほうが理解しやすい気がします値を生成するものは高階関数が読み書きのどちらも具合がいい
あくまで個人的な印象です
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
使うこともある (スコア:1)
再帰的なデータ構造を扱うとき(ツリーをトラバースするときなど)は、再帰呼び出しを直接使うことがあります。
その他、末尾呼び出しがスタックフレームを消費しない言語を使うときは、継続条件が繰り返しの途中に現れるようなループを書く際に、再帰呼び出しを直接使います。
より抽象化された高階関数などが使える時は、当然ながらそちらを使うべきだと思います。
Re:使うこともある (スコア:1)
>再帰的なデータ構造を扱うとき(ツリーをトラバースするときなど)は、再帰呼び出しを直接使うことがあります。
これは再帰を使わないほうが難しいね
Re: (スコア:0)
再帰呼び出しを使った方が簡単になるのなら迷わず使います。
再帰的なデータ構造なんかはその最たる例ですね。
関数型言語もかじってるので、ループを再帰で実現するってのも一応わかります。
末尾再帰もね。
schemeなんかやったから「プリミティブは少ない方がいい教」の信者でもあります。
なのでループを再帰呼び出して実現するなpgrって意見には与しません。
とか言いつつ普段はRubyとPHPでプログラム組んでるので背教者かもしれません。
Re: (スコア:0)
> より抽象化された高階関数などが使える時は、当然ながらそちらを使うべきだと思います。
関数型言語のコミュニティでも、再帰呼び出しを直接書くのは好ましくないスタイルとされているはずです
ケースバイケースですけども、mapやfoldrが使えるのにオレ再帰は歓迎されません
Re: (スコア:0)
個人的な印象だと、動作や検証などフローに着眼するものは高階関数より再帰の書き下しのほうが理解しやすい気がします
値を生成するものは高階関数が読み書きのどちらも具合がいい
あくまで個人的な印象です