関数型プログラミング言語Haskell Part34 (691レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
39(1): デフォルトの名無しさん [] 2022/01/03(月) 12:59:34.38 ID:hLrwvjQQ(2/2) AAS
今回の場合1ワード消費するたびにスタック一個消費するから必要なメモリリソースが倍以上になる可能性もあるから意味はあるかな
特にコレは>>3434(3): デフォルトの名無しさん [sage] 2022/01/02(日) 20:44:02.99 ID:OOMiLRw0(1/2) AAS
>>30ちょと改変
wc6 = let
iter n [] = z
iter n (False:True:xs) = let n' = n + 1 in seq n' $ iter n' xs
iter n (x:xs) = iter n xs
in (iter 0) . (False :)
wcc = wc6 . map chkspand2
これのseq n'が効けば+1+1+1+1が積みあがらないはず
の方法だと必要なメモリリソースがデータ保持する分を除けばlogオーダーになるからな
しかも読み込んだデータは順次捨てていけるし(そこまでのカウント結果を保持しないといけないので有限オートマトンでは無理だけど有限オートマトン以上、チューリング完全以下、こういう計算クラスは名前ついてるのかな?)
個人的にはこういうときメモリ線形、時間線形までは許さないと大した事できないことが多いのでそれ以上のこだわりは持たないようにしてる
数学的研究対象とかにするなら別だけど
40: デフォルトの名無しさん [sage] 2022/01/03(月) 15:29:08.17 ID:TEX8BSo6(2/2) AAS
>>39
今回なにを確認したのか
それは、Cで組むような単純繰り返しを同じ感覚でヒャッハーとhaskellの遅延評価で行うと
ヤバイと言う教訓とそれを回避する手法
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s