[過去ログ] 関数型プログラミング言語Haskell Part32 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
41(1): デフォルトの名無しさん [sage] 2019/02/03(日) 21:39:25.68 ID:RwDwNYzW(7/27) AAS
>>2323(4): デフォルトの名無しさん [sage] 2019/02/03(日) 21:25:18.35 ID:5bolWXfM(5/36) AAS
>>19
理解したのは>>9の通りで
仮定として1かtrueを返したら再帰は止まる仕様になってると推測してる
>>20
だからfact(1)で無限に続いちゃうよね
1 - 1で fact 0をevalしてまたfact(1)になる
そこで終了条件が必要だけど何にも書いてないから記述通りならずーっと続く
としか見えないんだよね
>>>1919(2): ◆QZaw55cn4c [sage] 2019/02/03(日) 21:19:41.63 ID:t4xt++Qj(2/20) AAS
>>13
では逆に質問しましょうか、そこから両者が部分的にでも合意できるポイントを探ることにしましょう
>>9
>fact 0 = 1
>fact n = n * fact(n - 1)
これをあなたはどのように解釈したかを、もう少し詳しめに記述していただくことは可能でしょうか、私の記述は今は >>13 が精一杯ですが、あなたの返答をみて改善できる点はないか検討したいと思います
>理解したのは>>99(11): デフォルトの名無しさん [sage] 2019/02/03(日) 12:58:27.43 ID:5bolWXfM(1/36) AAS
haskell紹介してるブログとか色々あるけどどこも肝心要のところがすっぽり抜けててイライラするな・・
例えば
fact 0 = 1
fact n = n * fact(n - 1)
これ無限ループになっちゃって終わらないでしょ終端条件も書いてないし。
fact 3を展開すると
3 * ( 2 * ( 1 * ( 1 * ………
0を入力すれば1になるってことはこの先ずーっと1が繰り返されるだけだし。
同じ値が2度続いたら処理を止めるとか変な仕組みでも入ってるのかねー
の通りで
>仮定として1かtrueを返したら再帰は止まる仕様になってると推測してる
この推測が間違っているので、いったん忘れて素直にプログラムを読んでみよう
48(1): デフォルトの名無しさん [sage] 2019/02/03(日) 21:44:56.66 ID:RwDwNYzW(10/27) AAS
もういちど繰り返すが、
>>41 に書いたように
「仮定として1かtrueを返したら再帰は止まる仕様になってると推測している」
が大間違いだ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.558s*