[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
12
(1): 2019/02/03(日)15:10 ID:DVkCUlxV(1/11) AAS
>>9
恥ずかしいぞ

>fact 0 = 1
で、これ以上再帰してないじゃん
16
(1): 2019/02/03(日)21:15 ID:DVkCUlxV(2/11) AAS
>>13
ああ 言っている意味は分かったけど
続かねーぞ よく考えてみ 恥ずかしい思いするだろうけど

っていうか、>>11のひとが書いてるじゃん 

fact 1 = 1 * fact 0
= 1 * 1 で終了だろ

これ納得できないとしたら、別のところで引っかかっている
パターンマッチを理解していないとか
24: 2019/02/03(日)21:26 ID:DVkCUlxV(3/11) AAS
いやだから

fact 1 で1が出てくる でまた、fact 1になって永遠に続くとかの勝手な思い込みでしょ

あるいは、
fact 0 =1 になるから、また fact 1 -1 になると思ってるとか

だから、永遠に1が続くと勘違いしちゃっている
26: 2019/02/03(日)21:28 ID:DVkCUlxV(4/11) AAS
>>23
>1 - 1で fact 0をevalしてまたfact(1)になる
ならねーよ そこが恥ずかしいところだ
38: 2019/02/03(日)21:37 ID:DVkCUlxV(5/11) AAS
>>33
おもろいな だんだんネタに思えてきた

fact nの定義をよく見ろ 
fact 0 = 1 で再帰していないじゃん ここで止まるだろ 普通に考えれば

他の言語も一緒だろ ただそれをパターンマッチでやってるだけ
54
(1): 2019/02/03(日)21:49 ID:DVkCUlxV(6/11) AAS
>>51
わかるじゃん fact 0で1が出てきたら、また、勝手に再帰させて
fact 1に戻っちゃう 勝手に脳内変換させちゃってる
61
(1): 2019/02/03(日)21:58 ID:DVkCUlxV(7/11) AAS
>>59
いや 俺は本人じゃないから

あくまでも、彼の脳内を勝手に想像しただけ 1がつづくケースを考えただけ
そのものでは無いかもしれないけど、どちらにしようが似たようなケースでしょ
65
(1): 2019/02/03(日)22:02 ID:DVkCUlxV(8/11) AAS
>>60
>fact 0 = 1の結果はすぐ反映されるんじゃないの?
ようするにそこでとまる

数学の階乗だから fact nの引数は再帰する度に-1される。
どこかで、factの引数が0になったら、それ以上は再帰しない

難しい話じゃないし、他の言語で再帰理解していたら、分かるはず
自分で落ち着いて考えてごらん
69
(1): 2019/02/03(日)22:08 ID:DVkCUlxV(9/11) AAS
>>66
だとすると文法自体理解していない あるいは関数自体
もっと、詳しく書くと

>どのみちfact 0が1となるならまたfact(1-1)でfact(0)でしょ
定義を見てごらん
fact 0 = 1 でこれは、=の右にfactが無いからこれで再帰はしないで、ここで終了
fact n = n * fact n-1 で=の右にfactがあるから再帰する
74
(1): 2019/02/03(日)22:17 ID:DVkCUlxV(10/11) AAS
>>73
他の言語で再帰ってのは理解しているの?

fact 0 = 1で=の右にfactが無いから、再帰は終了 だから、終了条件は書かれている。
もしこれが理解できないのなら、関数定義とか、パターンマッチとかもっと基本的なことに
戻らないと理解できないと思う
89: 2019/02/03(日)22:33 ID:DVkCUlxV(11/11) AAS
この人 77で書いてるけど、文法まともに読んでないんだよ

Haskell 文法自体は一見綺麗で簡単そうに見えるけど
実際には、理解するのが非常に難しい(今回の再帰のとこじゃないんだけど)
適当に文法流し読みして理解しようとするのが 間違っている

もっとも、階乗の再帰は、他の人の説明で理解できるだろうと思うが
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s