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

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

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

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

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

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

ぬこの手 ぬこTOP 1.291s*