なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
1-

1
(1): デフォルトの名無しさん [] 2015/11/28(土) 18:51:38.86 ID:Rc2MJzM/(1) AAS
なあ、再帰関数好きな人いる?
2: デフォルトの名無しさん [sage] 2015/11/28(土) 18:55:04.46 ID:SbMJmhTc(1) AAS
わくわく
3: デフォルトの名無しさん [sage] 2015/11/28(土) 19:23:33.42 ID:mf/sQ31/(1) AAS
嫌いな奴なんて見たことない
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
スタック的なメモリ確保が必要かどうかがループと再帰を使い分ける分岐点じゃね。
末尾再帰最適化とかは本末転倒なイメージ。
6: デフォルトの名無しさん [sage] 2015/11/28(土) 20:05:09.47 ID:N2qWmI2+(1) AAS
前スレ
なあ、再帰関数好きな人いる? パート2
2chスレ:tech
7: デフォルトの名無しさん [sage] 2015/11/28(土) 20:30:33.91 ID:Tq6BVuZs(1/2) AAS
>>5
ループ実装を隠せるのは大きいよ
抽象化はプログラミング言語の進化のベクトルと一致するからね
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
ツリーの巡回は再帰を使ったほうがいいだろう。
リストの巡回はループでいいんじゃね?
10: デフォルトの名無しさん [sage] 2015/11/28(土) 20:48:22.48 ID:Tq6BVuZs(2/2) AAS
>>8
> 俺的にはプログラムには必要最小限の機能を使うべき
そういうのはコンパイラなりインタプリタなりが頑張るべきところだと思うね
人間はより抽象化された対象を扱うようにするのがモダンなプログラミング言語の方向だし
11: デフォルトの名無しさん [] 2015/11/28(土) 20:52:46.74 ID:fFSPKhVt(1/7) AAS
抽象的なスレだな
12: デフォルトの名無しさん [sage] 2015/11/28(土) 20:58:39.47 ID:R0seH/nX(5/13) AAS
うーん。必要な抽象化は歓迎するが無駄な抽象化は歓迎しないというか。

この例は再帰とは関係ないけどJavaのファイル入出力なんかは
結構複雑な作りになってて無駄な抽象化なんじゃねーのとか思ってしまう。
まあ、俺個人の感想だが。
13: デフォルトの名無しさん [sage] 2015/11/28(土) 21:12:02.73 ID:M/Wigktg(1) AAS
アルゴリズムが再帰なら普通に再帰で書く
スタックサイズ制限とかあるなら別だけど
14: デフォルトの名無しさん [sage] 2015/11/28(土) 21:30:44.25 ID:10sD81C/(1) AAS
アルゴリズムが再帰であってもクイックソートなど
再帰のままじゃあ使い物にならんものがいくらでも。
15: デフォルトの名無しさん [sage] 2015/11/28(土) 21:32:52.35 ID:R0seH/nX(6/13) AAS
スマンw クイックソートは再帰で書くわw
16: デフォルトの名無しさん [] 2015/11/28(土) 21:34:06.03 ID:fFSPKhVt(2/7) AAS
書いたことないくせに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)
18: デフォルトの名無しさん [] 2015/11/28(土) 22:09:37.77 ID:fFSPKhVt(3/7) AAS
リストの巡回はループでいいんじゃないんかw
19: デフォルトの名無しさん [sage] 2015/11/28(土) 22:13:01.33 ID:R0seH/nX(8/13) AAS
クイックソートは単純な巡回とは違うだろ。
だからスタック的なメモリを必要とするかどうかだよ。
20: デフォルトの名無しさん [] 2015/11/28(土) 22:21:22.26 ID:fFSPKhVt(4/7) AAS
filterはリストの巡回とちゃうんかw
21: デフォルトの名無しさん [sage] 2015/11/28(土) 22:25:38.46 ID:R0seH/nX(9/13) AAS
filterの実装がどうなってるかまでは知らんがな。
22: デフォルトの名無しさん [] 2015/11/28(土) 22:32:42.45 ID:fFSPKhVt(5/7) AAS
知らんなら最初からそう言えやw
23: デフォルトの名無しさん [sage] 2015/11/28(土) 22:39:27.55 ID:R0seH/nX(10/13) AAS
なんか変なテンションだなぁ
俺がC++とかでfilter相当の関数書かにゃならんくなったらループで書くよ。
24: デフォルトの名無しさん [] 2015/11/28(土) 22:44:37.77 ID:fFSPKhVt(6/7) AAS
クイックソートはhaskellでfilterはc++なんか?
なんか変な奴だなぁニヤニヤ
25
(1): デフォルトの名無しさん [sage] 2015/11/28(土) 22:49:36.42 ID:R0seH/nX(11/13) AAS
何が変か、わからん。
まあ関数型言語なんかは再帰推奨らしいがあんまり好きになれん。
1-
あと 889 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.021s