トップページ > プログラム > 2015年09月05日 > dKM7sd/0

書き込み順位&時間帯一覧

20 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数1100000000000001000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
なあ、再帰関数好きな人いる? [転載禁止]©2ch.net

書き込みレス一覧

なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
662 :デフォルトの名無しさん[sage]:2015/09/05(土) 00:56:03.07 ID:dKM7sd/0
a. 再帰は不要
b. ループは不要
c. どっちも欲しい
d. 言語に合わせる

aとb(いるのか?)に精神病患者がいるせいで、
cの人の投げた話題を勝手にa(あるいはb)の人間の主張と見なして攻撃するのがおかしい。
aに反駁したらループ不要派だとレッテルを貼られ、
bに反論したら再帰理解できない馬鹿とレッテルを貼られるが、そもそもnot a != bだしnot b != aだからな。

再帰関数を作る時は、頭に保持しなきゃならない情報が少ないのがいいよ。
f(n)の定義を使ってf(n)を定義できるイメージ。場合分けだけで済む。
古典的なインデックスを使うforループより、要素を1つずつ取り出すっていうのが明確なforeachが好まれるのも似た理屈だと思う。
なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
663 :デフォルトの名無しさん[sage]:2015/09/05(土) 01:09:05.88 ID:dKM7sd/0
あと、再帰はパターンマッチがあると途端に利便性が上がる。
例えばリストの要素を2つ以上必要とする処理を書くとき、OCamlだと
let rec foo acc xs = match xs with
| x :: y :: rest -> foo (do_something x y acc) y::rest)
| _ :: [] | [] -> finish_something
みたいに書けて楽。ループだとインデックスの範囲とか終了条件とか色々考慮しなきゃならんので手間がかかる。
なあ、再帰関数好きな人いる? [転載禁止]©2ch.net
742 :デフォルトの名無しさん[sage]:2015/09/05(土) 15:16:46.56 ID:dKM7sd/0
その定義だと相互再帰は再帰じゃないのかと重箱の隅をつつかれるけど、間違いじゃない。

クソコテは速やかにNG入れるといいよ。ラーメンが好きかどうかの話をしている中でお茶漬けもラーメンだと強弁するような、話題に入ることができない人だから。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。