[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
15(3): デフォルトの名無しさん [sage] 2019/02/03(日) 21:13:08.06 ID:5bolWXfM(3/36) AAS
>>14あの説明で納得するようならここ来てないから
あれだとブログの説明と何も変わらない
まさか1かtrueを返したら問答無用で終わる仕様だったりするのかねー
17: デフォルトの名無しさん [sage] 2019/02/03(日) 21:18:28.59 ID:DdA3Wm74(1/9) AAS
>>15
バカで思い込みが激しいって最悪だぞ?どっちかにしろ。
20(2): デフォルトの名無しさん [sage] 2019/02/03(日) 21:20:07.09 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 に置き換えられる
ひとつめの関数の定義により、fact 0 は 1 に置き換えられるので
置き換えはここでとまる
以上をまとめると
fact 3
= 3 * fact 2
= 3 * 2 * fact 1
= 3 * 2 * 1 * fact 0
= 3 * 2 * 1 * 1
= 6
21: デフォルトの名無しさん [] 2019/02/03(日) 21:22:45.27 ID:I0qputsI(1/5) AAS
>>15
fact 0で問答無用で終わる仕組みですが。。。
>>1111(3): ◆QZaw55cn4c [sage] 2019/02/03(日) 15:04:51.94 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
で止まります.
以上にやさしい説明はないと思われ。
普通の言語(ここで
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.726s*