[過去ログ]
関数型プログラミング言語Haskell Part32 (1002レス)
関数型プログラミング言語Haskell Part32 http://mevius.5ch.net/test/read.cgi/tech/1548720347/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
73: デフォルトの名無しさん [sage] 2019/02/03(日) 22:14:19.16 ID:5bolWXfM >>69 fact 0 = 1で終了するというのが納得いってない もしそうであれば1を返せば再帰は終了すると仮定したんだ そもそもfact 0 = 1ってマクロ定義みたいなもんだし 直ちに評価されて式に代入されるよね http://mevius.5ch.net/test/read.cgi/tech/1548720347/73
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
76: デフォルトの名無しさん [sage] 2019/02/03(日) 22:19:53.64 ID:RwDwNYzW >>73 fact 0 = 1 で「終了する」というのが間違い fact 0 = 1 では、fact 0 が 1を返す(正確に言うと1に簡約する) ということしか定義していない ただ、もうfact関数を呼び出していないので、再帰呼出しはここで止まる そして fact 0 = 1 がマクロ定義ということも勘違いなので忘れよう >>67 が解説してくれた fact 3 = 3 * fact 2 = 3 * 2 * fact 1 = 3 * 2 * 1 * fact 0 -- fact 0が・・ = 3 * 2 * 1 * 1 -- 1になる。factもうないのにここから何が続くの? = 6 http://mevius.5ch.net/test/read.cgi/tech/1548720347/76
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s