トップページ > プログラム > 2015年09月07日 > kPPvOKmq

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

7 位/125 ID中時間01234567891011121314151617181920212223Total
書き込み数0100000000010001200000005



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

書き込みレス一覧

なあ、再帰関数好きな人いる? パート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
再帰をループに置き方たら再帰じゃない。

同じ問題を、再帰を使ったやり方と
再帰を使わないやり方で解くことができる。

等価であっても、再帰ではなく、
再帰を使わずにループで、等価な処理が出来るだけ。

再帰は単に自分の関数自身を呼び出すかどうかで決まる。


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