- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
96 :デフォルトの名無しさん[sage]:2015/09/07(月) 01:22:27.71 ID:kPPvOKmq - どうやらやっと、これが再帰じゃないと
認めたようだな。 int sum = 0; for(int i = 1; i <= 10; i++) { sum = sum + i; } 馬鹿が理解するのは こんなにも時間がかかると。 ま、偉い先生がこう言ってるのだから、反論の余地はないかw > となります。しかし,実は階乗関数は,再帰を使わなくても, > 次のように実現することが出来ます。 > > Function Kaijyou(n) > F = 1 > For i = 1 to n > F = F * i > Next i > Kaijyou = F > End Function
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
107 :デフォルトの名無しさん[sage]:2015/09/07(月) 11:16:26.65 ID:kPPvOKmq - >>106
schemeはしらんけど、ここを読む限り、 https://www.shido.info/lisp/scheme7.html > 7. 繰り返し > 2. 再帰 > 再帰関数とは関数定義の中で自分自身を呼び出す関数です。 > 4. 名前つき let > ループを表すのに名前つき let という構文が使えます。 > 名前つき let は Scheme で繰り返しを表す標準的な方法です。 これに該当するんじゃね?
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
134 :デフォルトの名無しさん[sage]:2015/09/07(月) 15:54:13.94 ID:kPPvOKmq - というレスをムキになってやっているNAS6
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
140 :デフォルトの名無しさん[sage]:2015/09/07(月) 16:48:54.74 ID:kPPvOKmq - >>137
> ところが、named letは先の例だと、loopという名を持つ再帰関数を定義して、呼び出しているんだ。 あんたがどう思うが関係なく、 リンク先には再帰ではないと書いてある事実が重要
|
- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
142 :デフォルトの名無しさん[sage]:2015/09/07(月) 16:50:45.70 ID:kPPvOKmq - >>139
再帰をループに置き方たら再帰じゃない。 同じ問題を、再帰を使ったやり方と 再帰を使わないやり方で解くことができる。 等価であっても、再帰ではなく、 再帰を使わずにループで、等価な処理が出来るだけ。 再帰は単に自分の関数自身を呼び出すかどうかで決まる。
|