関数型プログラミング言語Haskell Part34 (667レス)
上下前次1-新
31(1): 2021/12/31(金)20:42 ID:aP8qPSMg(4/5) AAS
>>30のこれ
iterator (0:1:xs) = 1 + (iterator xs)
内部で
1+1+1+1+...が積みあがって最後に計算されるの?
32(1): 2021/12/31(金)20:58 ID:bqUePCKa(2/2) AAS
>>31
それは処理系のimplement依存だから一概には言えないけど多分stack上に(1+)関数が乗っていって最後に確定した0が入ってから計算しそうな気がする
33: 2021/12/31(金)21:10 ID:aP8qPSMg(5/5) AAS
>>32
了解しました
34(3): 2022/01/02(日)20:44 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が積みあがらないはず
35: 2022/01/02(日)21:09 ID:OOMiLRw0(2/2) AAS
ghciで確認
>>30はスタックオーバーフローで止まった
>>34は止まらないからctr-Cで止めた
36: 2022/01/03(月)00:17 ID:eS7vipFo(1) AAS
OOPでも、整数を他のオブジェクトとは全然違う形式にしないと
計算が遅過ぎてダサくなるよね
逆にオブジェクトの方を整数と同じようなGC非依存みたいな構造にする手もあるか
37(1): 2022/01/03(月)08:08 ID:hLrwvjQQ(1/2) AAS
まぁコレは趣味による
Haskellでは性能面より可読性を重視するからな
それも使う人次第だけど
>>34のようにすればメモリも時間も節約できるけど可読性は失われる
どこまで我慢するかだけどオレは計算時間もメモリも線形までなら我慢して可読性を重視する
>>34だと入力に比例して要求されるスタック量が増える
線形までならしょうがないと思う
どのみち入力が大きくなるにつれてシステムが大きくなるのは元々しょうがないんだしその時の比例定数の違いまでなら我慢する
今具体的にやりたいことがあってその線形オーダーの無駄すら許されない状況なら考えるけど
38: 2022/01/03(月)11:20 ID:TEX8BSo6(1/2) AAS
>>37
今回のお題はワードカウント、ファイルサイズがギガになる場合を想定
スタックなりヒープなりを消費しない手法は?です
Cなどで実装した場合、ループでカウントして再帰なしスタックもヒープも消費なしとか(可読性は...)
他にマルチスレッドで分割カウントした時の手法とか(ディスクのIOで律速か)
39(1): 2022/01/03(月)12:59 ID:hLrwvjQQ(2/2) AAS
今回の場合1ワード消費するたびにスタック一個消費するから必要なメモリリソースが倍以上になる可能性もあるから意味はあるかな
特にコレは>>34の方法だと必要なメモリリソースがデータ保持する分を除けばlogオーダーになるからな
しかも読み込んだデータは順次捨てていけるし(そこまでのカウント結果を保持しないといけないので有限オートマトンでは無理だけど有限オートマトン以上、チューリング完全以下、こういう計算クラスは名前ついてるのかな?)
個人的にはこういうときメモリ線形、時間線形までは許さないと大した事できないことが多いのでそれ以上のこだわりは持たないようにしてる
数学的研究対象とかにするなら別だけど
40: 2022/01/03(月)15:29 ID:TEX8BSo6(2/2) AAS
>>39
今回なにを確認したのか
それは、Cで組むような単純繰り返しを同じ感覚でヒャッハーとhaskellの遅延評価で行うと
ヤバイと言う教訓とそれを回避する手法
41: 2022/01/04(火)16:11 ID:h755Av8k(1) AAS
Haskellを身に付けた人は他の言語も使えると予想しますが、いくつもの言語の中からHaskellを選んで
プログラムを書くのはどんな課題、問題を解決したいときなんでしょうか
42: 2022/01/04(火)16:44 ID:HuVGMWib(1) AAS
課題が「ガベージをコレクトしたい」だけだったとしても
じゃあ静的型は不要だとかジェネリクスは不要だとはならない
だから課題と関係ない部分を作り込む
43(1): 2022/01/05(水)10:28 ID:imDyM2+l(1) AAS
Twitterの検索で
@ohagiya @kenokabe
と入れると楽しいよな
44: 2022/01/11(火)17:47 ID:rZde0CTm(1) AAS
>>43
ひどすぎるだろこれ
可哀想に
45: 2022/01/14(金)10:48 ID:3PF6dXYX(1) AAS
最新の怪文書も読んだけどさ、毛の壁は毎回毎回威勢だけは良いんだよなw
たとえば「ちくわは民事でもやる!」「ちくわはもう詰み」(9年前)
「ちくわはもう死に体」(7年前)とかさ。
死に体なのに、つい最近もブログで恨み節w
ネズミ一匹、始末できないなんてだらしがないな
46: 2022/01/15(土)18:49 ID:chCIM2fB(1) AAS
質問です
array と List の性能の差がいまいちピンと来ません
何か「この例ではどう考えてもarray、ほらこんなに性能に差が出る」って例ご存知ないですか?
47: 2022/01/16(日)12:22 ID:f2QwXzzi(1/4) AAS
質問です
何かの文章で
square x = x*x
print $ square $ square 3
のようなプログラムをHaskell は
square $ square 3
→ square ( square 3 )
→ ( square 3 ) * ( square 3 )
→ ( 3 * 3 ) * ( 3 * 3 )
のようになる
省15
48(1): 2022/01/16(日)13:40 ID:rC9oNTrC(1) AAS
メモ化は独自実装ではなく仕様
何かの文章は嘘
でも騙されたことがないので被害が存在しないし、加害者も存在しない
49: 2022/01/16(日)14:36 ID:f2QwXzzi(2/4) AAS
>>48
仕様なんですか?
Language Reportかなんかに書いてありますか?
50: 2022/01/16(日)14:39 ID:f2QwXzzi(3/4) AAS
何かの文章は "ウォークスルー Haskell" というやつでした
外部リンク:walk.northcol.org
3 ではなく 1 + 2 でやってました
51(1): 2022/01/16(日)18:39 ID:ZlAL8rfa(1) AAS
seqだと結果はどうなるんですか?
52: 2022/01/16(日)18:54 ID:f2QwXzzi(4/4) AAS
>>51
square x = x * x
を
square x = seq x $ x * x
にして明治的に“xを評価してからx*xを計算せよ”に変えるともちろん*ひとつです
それは納得いきます
ウォークスルーHaskellにもそうなると書いてあるしHaskell Language Report 2010にもseqで正格評価になると書いてあります
なのでコレは納得いくんですがseqなしの場合の動作が文書と異なるように見えます
もちろん参照透過性があるので一度計算した結果をメモ化して再利用しても同じ答えにならないといけないので答え自体は同じになるわけですけど
コレはたまたまGHCの開発者が優秀でHaskellの標準動作としては保証されない事までやってくれてるだけなのか、標準動作としてメモ化しないといけないことになってるのかどっちだろうと
省1
53: 2022/01/17(月)04:24 ID:FNscPcIY(1) AAS
銀の弾丸のHaskellをIT企業が採用したら市場を席捲できるのでは???
実際そうなると思う?
54: 2022/01/17(月)13:17 ID:3dpBVALW(1) AAS
Windows10にVSCode入れて、Haskellを遊ぼうとしたけど上手く入らない。
コマンドラインで細かく入れて遊ぶしかないかな。
55: 2022/01/18(火)00:23 ID:1uCkeDxh(1) AAS
外部リンク:www.haskell.org
>GHCup is an installer for the general purpose language Haskell.
56(2): 2022/01/27(木)08:50 ID:NJ4yaxSd(1) AAS
外部リンク:qiita.com
コメント欄ひどすぎだろ
@stken2050(これ岡部健)が非道いので皆さん通報してほしい
57: 2022/01/27(木)10:10 ID:orDFdZXN(1) AAS
毛さんは昔から色々酷いが
>>56のコメ欄の流れだけでいうと単に@Zuishinが分が悪いわ
珍妙な独自用語は早めに芽を摘まないといけない
58: 2022/01/27(木)11:59 ID:oUTYjCet(1) AAS
岡部さんこんにちは
59: 2022/01/27(木)12:03 ID:eY59BLQP(1) AAS
Twitterリンク:mutamac
引用
「Linuxの元になったMINIXが復権中。期待。」という自称ギークとの話』の魚拓を取りました 外部リンク[pdf]:nmuta.dip.jp
Twitterリンク:5chan_nel (5ch newer account)
60(1): 2022/01/27(木)23:00 ID:7u9WcLA6(1) AAS
そうじゃなくて、PHPやHaskellごときが偉そうにすんなって事だろ。
質問者が来たらお茶菓子くらい出せ。
底辺やマイナー言語はそうするべき。
上下前次1-新書関写板覧索設栞歴
あと 607 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s