なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
4: デフォルトの名無しさん [sage] 2015/11/28(土)19:30 ID:R0seH/nX(1/13)
ループで書けるものはループで書く。
再帰使うのは仕方ない場合だけ。
5
(2): デフォルトの名無しさん [sage] 2015/11/28(土)19:53 ID:R0seH/nX(2/13)
スタック的なメモリ確保が必要かどうかがループと再帰を使い分ける分岐点じゃね。
末尾再帰最適化とかは本末転倒なイメージ。
8
(3): デフォルトの名無しさん [sage] 2015/11/28(土)20:39 ID:R0seH/nX(3/13)
ループより再帰のほうが抽象度が高いと言っている?
そこは俺にはよくわからん。

俺的にはプログラムには必要最小限の機能を使うべきで、
本質的にループより再帰のほうが強力なのだから
可能な限りループを使うべきと思ってる。

もちろん再帰をループにするためにスタックを自前で用意するといったことでは本末転倒だが。
9
(1): デフォルトの名無しさん [sage] 2015/11/28(土)20:41 ID:R0seH/nX(4/13)
ツリーの巡回は再帰を使ったほうがいいだろう。
リストの巡回はループでいいんじゃね?
12: デフォルトの名無しさん [sage] 2015/11/28(土)20:58 ID:R0seH/nX(5/13)
うーん。必要な抽象化は歓迎するが無駄な抽象化は歓迎しないというか。

この例は再帰とは関係ないけどJavaのファイル入出力なんかは
結構複雑な作りになってて無駄な抽象化なんじゃねーのとか思ってしまう。
まあ、俺個人の感想だが。
15: デフォルトの名無しさん [sage] 2015/11/28(土)21:32 ID:R0seH/nX(6/13)
スマンw クイックソートは再帰で書くわw
17: デフォルトの名無しさん [sage] 2015/11/28(土)21:52 ID:R0seH/nX(7/13)
書いたことはあるけど10年以上昔の話だな。
これは拾い物だけどクイックソートなんてこれだけのことだろ。

qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
19: デフォルトの名無しさん [sage] 2015/11/28(土)22:13 ID:R0seH/nX(8/13)
クイックソートは単純な巡回とは違うだろ。
だからスタック的なメモリを必要とするかどうかだよ。
21: デフォルトの名無しさん [sage] 2015/11/28(土)22:25 ID:R0seH/nX(9/13)
filterの実装がどうなってるかまでは知らんがな。
23: デフォルトの名無しさん [sage] 2015/11/28(土)22:39 ID:R0seH/nX(10/13)
なんか変なテンションだなぁ
俺がC++とかでfilter相当の関数書かにゃならんくなったらループで書くよ。
25
(1): デフォルトの名無しさん [sage] 2015/11/28(土)22:49 ID:R0seH/nX(11/13)
何が変か、わからん。
まあ関数型言語なんかは再帰推奨らしいがあんまり好きになれん。
27: デフォルトの名無しさん [sage] 2015/11/28(土)23:05 ID:R0seH/nX(12/13)
まあ参照透過性とかは原理主義か?という気はする。
31: デフォルトの名無しさん [sage] 2015/11/28(土)23:45 ID:R0seH/nX(13/13)
ループでクイックソート書こうとするとスタック的なものを自前で用意せにゃならんのじゃないか。
めんどくさすぎ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s