- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
135 :まーた連続書き込み規制だよ[sage]:2015/08/13(木) 01:50:39.52 ID:kS/o56L+ - >>116とか>>119とか>>121とか>>122
そういう場合、switchを使うんだけど ちょっと数が増えただけで、循環的複雑度を調べるツールで 複雑だって言われるんで、これぐらいいいじゃねーかと思いながら (※注 そのツールを導入したのは俺wしきい値を8に設定してるのも俺w) 関数テーブル呼び出し的なコード(意味わかるよね?)に書き換えるんだけど、 そうしたらやっぱり前よりわかりやすくなって、 やっぱりswitchいらねーか、とか思ってしまうw 関数テーブル呼び出し的なコードにすれば、パターンマッチ漏れは nullを関数呼び出しすることになって、実行時エラーになってはくれるよ。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
137 :デフォルトの名無しさん[sage]:2015/08/13(木) 01:59:57.44 ID:kS/o56L+ - >>136
> 元から再帰で無理矢理書くことを勧めてる人は、そういないんじゃないかと うん、こいつらぐらいかな? 適切なものを選ぼうとせずに 何でも再帰、再帰のほうがわかりやすい。 再帰使うほうが頭いい、(理由ないけど)普通に再帰だわ とか言ってる人。 25 名前:デフォルトの名無しさん[] 投稿日:2015/08/11(火) 20:07:51.21 ID:SPQSl72c [2/2] 再帰のほうがわかりやすいと思えない子が 26 名前:デフォルトの名無しさん[sage] 投稿日:2015/08/11(火) 20:55:40.81 ID:I9e7/X97 [1/2] 再起が得意かどうかで頭の良さが決まる 33 名前:デフォルトの名無しさん[] 投稿日:2015/08/11(火) 23:39:17.34 ID:BomPGBV/ [2/2] 再帰苦手なのは練習不足なだけ 理解が早いのは完全に地頭がいいだけじゃね? 74 返信:デフォルトの名無しさん[] 投稿日:2015/08/12(水) 23:00:43.40 ID:ALDJfVhA [5/11] >>72 >だけどデータがリスト構造なだけなら >普通にループを使ったほうがわかりやすい。 んなわけねーだろ 普通に再帰使うわ
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
141 :デフォルトの名無しさん[sage]:2015/08/13(木) 02:07:07.66 ID:kS/o56L+ - > それってfoldかfilterで良くないですか?
> そう言う意味で、再帰よりループのが不要に見えるんですが え? 君、foldかfilterでいいにしても、再帰の話してないよね? foldもfilterもループでも再帰でも書けるわけだから。 高階関数呼び出しを行うそれらの関数を使えば ループ(または再帰)が不要になるっていう話なら別に否定してない。 俺もよく使うし、上の方でも書いたよ。 >>53 > 最近ではMIMEメールのパースとか、連想配列の > 全ての値の処理とかで使ったかな。 > > 再帰を使うことはめったにない。そしてミスをしやすい所でもある。 > だから再帰を使うときは、再帰を考慮しなくていい形に置き換えるようにしている。 > つまりJavaScriptでいうmapやreduceの形にする。再帰部分と処理部分に分けて再帰部分を隠ぺいする。 > 通常書くのはコールバックで呼ばれる処理部分のみ。 > そうすることで可読性も大きく上昇する。 再帰はわかりづらいからtraverseみたいな形にすることで再帰を内部に隠ぺいする。 ループを内部に隠蔽してfoldかfilterがあればループが不要だというのなら、 同じ理由で、再帰を内部に隠蔽したtraverseで良いから、再帰は不要だって言えばいいの?
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
143 :デフォルトの名無しさん[sage]:2015/08/13(木) 02:15:06.80 ID:kS/o56L+ - そういや高階関数使える言語ばっかりになったよな。
>>140 > 結局、純粋な関数型言語の時代は来ないんじゃないですかね。 俺もそう思う。 高階関数は便利だけど、純粋な関数型言語まではいらないかな。 あとScalaでいうval、再代入不可能な変数も欲しいけど。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
145 :デフォルトの名無しさん[sage]:2015/08/13(木) 02:19:45.60 ID:kS/o56L+ - >>142
そもそもの話が、「ループで簡単に書けるようなもの」を 再帰でわざわざ書くなって話なんだよ。 正確に言うと、再帰を使わないでいいような処理に 再帰を使うなという話。 だから、その手の関数で簡単に書き下せる処理に 再帰を使うなっていう話でも有る。
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
146 :デフォルトの名無しさん[sage]:2015/08/13(木) 02:20:52.90 ID:kS/o56L+ - >>144
話が再帰してるから (ループをわざわざ再帰にしてみました!)
|
- なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
148 :デフォルトの名無しさん[sage]:2015/08/13(木) 03:17:20.09 ID:kS/o56L+ - >>147
最初っからおんなじ 再帰は可読性悪いんで 使わずに済むなら使わない方がいい。
|