[過去ログ]
関数型プログラミング言語Haskell Part32 (1002レス)
関数型プログラミング言語Haskell Part32 http://mevius.5ch.net/test/read.cgi/tech/1548720347/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
12: デフォルトの名無しさん [sage] 2019/02/03(日) 15:10:17.81 ID:DVkCUlxV >>9 恥ずかしいぞ >fact 0 = 1 で、これ以上再帰してないじゃん http://mevius.5ch.net/test/read.cgi/tech/1548720347/12
16: デフォルトの名無しさん [sage] 2019/02/03(日) 21:15:44.35 ID:DVkCUlxV >>13 ああ 言っている意味は分かったけど 続かねーぞ よく考えてみ 恥ずかしい思いするだろうけど っていうか、>>11のひとが書いてるじゃん fact 1 = 1 * fact 0 = 1 * 1 で終了だろ これ納得できないとしたら、別のところで引っかかっている パターンマッチを理解していないとか http://mevius.5ch.net/test/read.cgi/tech/1548720347/16
24: デフォルトの名無しさん [sage] 2019/02/03(日) 21:26:42.72 ID:DVkCUlxV いやだから fact 1 で1が出てくる でまた、fact 1になって永遠に続くとかの勝手な思い込みでしょ あるいは、 fact 0 =1 になるから、また fact 1 -1 になると思ってるとか だから、永遠に1が続くと勘違いしちゃっている http://mevius.5ch.net/test/read.cgi/tech/1548720347/24
26: デフォルトの名無しさん [sage] 2019/02/03(日) 21:28:01.94 ID:DVkCUlxV >>23 >1 - 1で fact 0をevalしてまたfact(1)になる ならねーよ そこが恥ずかしいところだ http://mevius.5ch.net/test/read.cgi/tech/1548720347/26
38: デフォルトの名無しさん [sage] 2019/02/03(日) 21:37:24.99 ID:DVkCUlxV >>33 おもろいな だんだんネタに思えてきた fact nの定義をよく見ろ fact 0 = 1 で再帰していないじゃん ここで止まるだろ 普通に考えれば 他の言語も一緒だろ ただそれをパターンマッチでやってるだけ http://mevius.5ch.net/test/read.cgi/tech/1548720347/38
54: デフォルトの名無しさん [sage] 2019/02/03(日) 21:49:57.06 ID:DVkCUlxV >>51 わかるじゃん fact 0で1が出てきたら、また、勝手に再帰させて fact 1に戻っちゃう 勝手に脳内変換させちゃってる http://mevius.5ch.net/test/read.cgi/tech/1548720347/54
61: デフォルトの名無しさん [sage] 2019/02/03(日) 21:58:56.17 ID:DVkCUlxV >>59 いや 俺は本人じゃないから あくまでも、彼の脳内を勝手に想像しただけ 1がつづくケースを考えただけ そのものでは無いかもしれないけど、どちらにしようが似たようなケースでしょ http://mevius.5ch.net/test/read.cgi/tech/1548720347/61
65: デフォルトの名無しさん [sage] 2019/02/03(日) 22:02:55.82 ID:DVkCUlxV >>60 >fact 0 = 1の結果はすぐ反映されるんじゃないの? ようするにそこでとまる 数学の階乗だから fact nの引数は再帰する度に-1される。 どこかで、factの引数が0になったら、それ以上は再帰しない 難しい話じゃないし、他の言語で再帰理解していたら、分かるはず 自分で落ち着いて考えてごらん http://mevius.5ch.net/test/read.cgi/tech/1548720347/65
69: デフォルトの名無しさん [sage] 2019/02/03(日) 22:08:36.79 ID:DVkCUlxV >>66 だとすると文法自体理解していない あるいは関数自体 もっと、詳しく書くと >どのみちfact 0が1となるならまたfact(1-1)でfact(0)でしょ 定義を見てごらん fact 0 = 1 でこれは、=の右にfactが無いからこれで再帰はしないで、ここで終了 fact n = n * fact n-1 で=の右にfactがあるから再帰する http://mevius.5ch.net/test/read.cgi/tech/1548720347/69
74: デフォルトの名無しさん [sage] 2019/02/03(日) 22:17:47.65 ID:DVkCUlxV >>73 他の言語で再帰ってのは理解しているの? fact 0 = 1で=の右にfactが無いから、再帰は終了 だから、終了条件は書かれている。 もしこれが理解できないのなら、関数定義とか、パターンマッチとかもっと基本的なことに 戻らないと理解できないと思う http://mevius.5ch.net/test/read.cgi/tech/1548720347/74
89: デフォルトの名無しさん [sage] 2019/02/03(日) 22:33:23.20 ID:DVkCUlxV この人 77で書いてるけど、文法まともに読んでないんだよ Haskell 文法自体は一見綺麗で簡単そうに見えるけど 実際には、理解するのが非常に難しい(今回の再帰のとこじゃないんだけど) 適当に文法流し読みして理解しようとするのが 間違っている もっとも、階乗の再帰は、他の人の説明で理解できるだろうと思うが http://mevius.5ch.net/test/read.cgi/tech/1548720347/89
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.045s