パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

再帰呼び出し、よく使う?使わない?」記事へのコメント

  • by Anonymous Coward on 2015年02月11日 18時57分 (#2759496)

    プログラミング言語としては関数型であろうとも、ループの機能を持っていないものは無いのでは?
    関数型プログラミングの原理/スタイルを学ぶ時には再帰で反復処理を記述したとしても、現実のアプリケーション開発ではループを使わないはずが無いでしょう
    (そもそも再帰的なアルゴリズムを実装したり、再帰の方が簡明に記述できる処理をするのなら話は別だが)

    • 再帰は深さが不定なツリーを舐めるような処理、つまり文字通り「再帰的」な処理に適してる。
      ループじゃキツイでしょう?

      親コメント
      • by Anonymous Coward

        ちょうどツリーを全検索しなくちゃいけないことがあったばかりなんですが久しぶりに再帰処理使いました
        良いか悪いかは状況によるよね

    • by Anonymous Coward on 2015年02月11日 21時02分 (#2759572)

      SQL
      未だにループは無い
      再帰共通表式ができるまで、チューリング完全ではなかったぐらいだ

      親コメント
    • Erlang はループ構文ないです。
      親コメント
    • by Anonymous Coward

      HaskellにはForもWhileもありません。
      機械的にコーディングすればいいだけの会社なら命令型以外のパラダイムなんて知る必要もないのでしょうが。

      • by Anonymous Coward

        whileはあるぞ…

      • by Anonymous Coward

        機械的にコーディングするのがプログラミングの全てだと思い込んでる人が多い気がする、ここを見てると。

        • by Anonymous Coward

          さすがにそれは酷い思い込みだと言わざるを得ない

          # 思い込んでる人が多い、という思い込みのことだぞ

        • by Anonymous Coward

          自分は、設計は機械的には無理だが、コーディングはほぼ機械的に設計に従って手癖なんだが、人それぞれかもな。

      • by Anonymous Coward

        Haskellも機械的にコーディングするだけですが。

    • by Anonymous Coward

      反復はともかく、再帰が必要なデータ構造が増えている。

      たとえば、
      製品AにはオプションA1,A2,A3があって、オプションA1にはサブオプションA11、A12、A13があって、A12にはサブサブオプションA121が..
      なんて階層になった選択画面を作ってくれといった話はどこにでもあると思うんだけど。
      もちろん、結果がどう残るのかはともかく、表示上はA1とA2は排他。

      で、何階層まであるんですか?と聞けば決まってない、でも簡単でしょ?と言い返される。

      簡単にサクっとつくってやろうじゃないか。
      #でも、後々ちゃんと保守できる技術者確保しなければどうなっても知らないよ。

    • by Anonymous Coward

      関数型言語の話題はここに書けばいいですかね。

      私の場合、普段づかいはMLなので、forもwhileも
      あるのだけど、foldの頻度が高いですね。
          fold >> 再帰, for, while
      最近は、こうですね。
      昔は、なるべく再帰で書いていた頃もあった。

    • by Anonymous Coward

      純粋関数型だとか変数の束縛とかで調べてみてください。

      こいつらは数学的関数とよく似ています。
      ある関数のある入力における応答は同じですし、
      その評価中は変数の値も変化しません。
      そもそもループ変数が用意できないわけです。
      数学でのループ的な処理は x[i+1]=x[i]+1 などのように係数変えてったりそんな感じですが、その感じです。

      最近の言語はマルチパラダイムとかよく言いますけど、関数型言語のパラダイムは正直別格だと思います。
      #なので中々手を出せずにいる俺チキン

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

処理中...