[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
11(3): ◆QZaw55cn4c 2019/02/03(日)15:04 ID:t4xt++Qj(1/20) AAS
>>9
>無限ループになっちゃって終わらないでしょ終端条件も書いてないし。
いえいえ、終端条件が
>fact 0 = 1
です、n ∈ N たる n からはじまって 0 で終わる、と読みます
fact 3 = 3 * fact 2
= 3 * 2 * fact 1
= 3 * 2 * 1 * fact 0
= 3 * 2 * 1 * 1
で止まります.
19(2): ◆QZaw55cn4c 2019/02/03(日)21:19 ID:t4xt++Qj(2/20) AAS
>>13
では逆に質問しましょうか、そこから両者が部分的にでも合意できるポイントを探ることにしましょう
>>9
>fact 0 = 1
>fact n = n * fact(n - 1)
これをあなたはどのように解釈したかを、もう少し詳しめに記述していただくことは可能でしょうか、私の記述は今は >>13 が精一杯ですが、あなたの返答をみて改善できる点はないか検討したいと思います
22(1): ◆QZaw55cn4c 2019/02/03(日)21:22 ID:t4xt++Qj(3/20) AAS
>>18
終了条件は
>fact 0 = 1
です。関数 fact の引数が 0 なら、1 を関数の値として返し、fact の求値作業は終了します。
fact への入力が 1 でないならば
>fact n = n * fact(n - 1)
の定義をつかって、最初の入力 n よりも小さい値 n - 1 (< n) を使った関数定義がつかえるように変換します
30: ◆QZaw55cn4c 2019/02/03(日)21:31 ID:t4xt++Qj(4/20) AAS
>>23
>1 - 1で fact 0をevalしてまたfact(1)になる
>fact 0 = 1
というのは、関数 fact のうち fact(0) (引数が 0) のときの値は 1 である、と確定的な記述をしています。ここで答えが決まったので、さらに答えを求めるための関数適用作業には入りません、それはそういう意味です
どうして eval したあと fact(1) になる、と判断したのでしょうか?
fact(0) = 1 の 1 というのは fact() の値であって、fact の引数ではなく、また fact の引数になりうる記述は 「fact 0 = 1」という記述の中には見つからないのですが
>fact n = n * fact (n - 1)
この記述のなかには、たとえば 引数が 7 だとすると「 fact 8 を fact 7 の値をつかって表現する」ということですから、fact 8 を eval する「途中で」 fact 7 を eval しようとする、ということは書かれています
32: ◆QZaw55cn4c 2019/02/03(日)21:32 ID:t4xt++Qj(5/20) AAS
>>25
「1 を返したら」とまるのではなく
fact 0 = 1
と fact の求値が、この行で確定しているから、止まるのです。
fact 0 = 100
という定義であっても、とまりますよ
36(1): ◆QZaw55cn4c 2019/02/03(日)21:35 ID:t4xt++Qj(6/20) AAS
>>33
>いやいやfact(1)の評価は0なんだし
ここが違っています。
fact(1) の評価は 1 * fact(0) であって、 0 じゃないです
fact(0) の値が具体的になにかは、fact(0) を意識しはじめた時点では分からないのですよ
46(1): ◆QZaw55cn4c 2019/02/03(日)21:43 ID:t4xt++Qj(7/20) AAS
>>42
>1で再起が止まる仕様なら納得だし
理解が不十分じゃないかと危惧します、その台詞「1 で再起がとまる」という言葉ですが、「何が」 1 で再起が止まる、と考えているのですか?
あなたの発言は、いちいち「何が」「どうだ」の「何が」が欠けているので不安です
47: ◆QZaw55cn4c 2019/02/03(日)21:43 ID:t4xt++Qj(8/20) AAS
>>44
覚える、という言葉はこういうときに使うものではないと思いますよ
51(2): ◆QZaw55cn4c 2019/02/03(日)21:47 ID:t4xt++Qj(9/20) AAS
>>42
>fact(1)を入力したら 1-1を評価する
どうしてそう考えたのですか?そのような記述がどこに書かれていたのか説明いただけませんか?
56(1): ◆QZaw55cn4c 2019/02/03(日)21:52 ID:t4xt++Qj(10/20) AAS
>>50
>この記述だと無限に *1が続くわけだから
あなたの理解になにが足りないのかがわかるような気がしてきました。
「fact の引数が 1 である」と「fact の求値が 1 である」とを区別していないようですね
この二つは厳然として異なります
fact 0 = 1
は、fact(0) の「求値が」1 である、といっているのです
fact n = n * fact (n - 1)
省9
58: ◆QZaw55cn4c 2019/02/03(日)21:53 ID:t4xt++Qj(11/20) AAS
>>53
>1で再帰は必ず止まるんでない
「何が」 1 で再帰が止まる、と考えているのですか?
「何が」の部分を答えてください
59(1): ◆QZaw55cn4c 2019/02/03(日)21:56 ID:t4xt++Qj(12/20) AAS
>>54
>fact 0で1が出てきたら、
何が 1 となるのか、そこをはっきり書いてください、「出てきたら」っていいますが、「何が」 1 と出てきたら、なんでしょうか?
>また、勝手に再帰させて
何が 1 となるのか、0 となるのか、そこをはっきりさせないことには、それ以降の思考は不可能ですよ、あなたには「また勝手に再帰させて」とかいうことを考える段階ではありません
62: ◆QZaw55cn4c 2019/02/03(日)21:59 ID:t4xt++Qj(13/20) AAS
>>61
これは失礼…
105(1): ◆QZaw55cn4c 2019/02/03(日)22:51 ID:t4xt++Qj(14/20) AAS
>>64
>またfact(1-1)
どうしてそのように推測したのですか?その 1 - 1 ってどこから誘導したのですか?
107(1): ◆QZaw55cn4c 2019/02/03(日)22:53 ID:t4xt++Qj(15/20) AAS
>>79
>fact 0は1なんだからその次はfact(1)になるでしょ
ちがいますよ。なんども言っていますが「fact 0 は 1 」、っていう言葉が不正確ですね、fact 0 の「何が」 1 なんでしょうか?
109: ◆QZaw55cn4c 2019/02/03(日)22:54 ID:t4xt++Qj(16/20) AAS
>>86
>fact 0は1なんだから続くじゃない?
fact 0 の「何が」 1 なんですか?そこが他の者と違っている点かと思います
110(1): ◆QZaw55cn4c 2019/02/03(日)22:55 ID:t4xt++Qj(17/20) AAS
>>92
3 * 2 * 1 * 1 * fact(1-1)
その 1 - 1 はどういう理由で 1 - 1 と書いたのですか?
115: ◆QZaw55cn4c 2019/02/03(日)22:58 ID:t4xt++Qj(18/20) AAS
>>111
あなたは 「fact 0 が 1 」といっていますが、我々は「fact 0 の値が 1」と「fact の引数が 1」とを別のものとして区別しているのです
あなたは区別していますか?あるいは「fact 0 が 1」というけれども fact 0 の何が 1 なんですか?
117: ◆QZaw55cn4c 2019/02/03(日)22:59 ID:t4xt++Qj(19/20) AAS
>>114
結果は結果、引数は引数です
結果を引数に入れたり、引数を結果にいれたりしていないのですよ
123(1): ◆QZaw55cn4c 2019/02/03(日)23:03 ID:t4xt++Qj(20/20) AAS
>>118
そこでしたか!
うーん、それは見抜けなかったですね、いろいろしつこい質問をしてごめんなさい
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.483s*