[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
20
(2): 2019/02/03(日)21:20 ID:RwDwNYzW(2/27) AAS
>>15

ほとんど同じ説明だが…

関数の定義が
fact 0 = 1
fact n = n * fact(n - 1)
となっている。
このとき、左辺が右辺に置き換えられる (簡約という)

つまり fact 3 は 3 * fact 2 に置き換えられる
そして fact 2 は 2 * fact 1 に置き換えられる
そして fact 1 は 1 * fact 0 に置き換えられる
省9
23
(4): 2019/02/03(日)21:25 ID:5bolWXfM(5/36) AAS
>>19
理解したのは>>9の通りで
仮定として1かtrueを返したら再帰は止まる仕様になってると推測してる

>>20
だからfact(1)で無限に続いちゃうよね
1 - 1で fact 0をevalしてまたfact(1)になる
そこで終了条件が必要だけど何にも書いてないから記述通りならずーっと続く

としか見えないんだよね
28
(1): 2019/02/03(日)21:29 ID:RwDwNYzW(3/27) AAS
>>23

>>>20
>だからfact(1)で無限に続いちゃうよね
>1 - 1で fact 0をevalしてまたfact(1)になる
>そこで終了条件が必要だけど何にも書いてないから記述通りならずーっと続く

そうはならない

fact 1 = 1 * fact 0
に簡約される

そして
fact 0 = 1 であって
省2
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.603s*