[過去ログ] 関数型プログラミング言語Haskell Part33 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
914: 2021/09/30(木)07:09 ID:N1l0weLI(1) AAS
>>907
セミコロンを書かない言語ではすべからく改行直後に
(getLine)と書くとどうなるか問題が出てくる
915: 2021/09/30(木)09:21 ID:LH+TfD4u(1) AAS
すべからく警察だ!
916: 2021/09/30(木)09:22 AAS
>>911
具体的にどういうケースでどういう問題が起こるか解らないので、取り敢えずドキュメントにスレッド間で共有はやめろとある以上、大人しく従うことにします
>>912
STM版が、3950Xエコモードシングル500分の処理が30スレッド割り当てで220分くらいになりましたが
CPU使用率も75%前後で残念でした
競合するリソースが多過ぎたからではと思い、競合を避ける事を考えていると
そもそもSTMを使わず、スレッド毎にローカルにデータを貯めて処理して最後に各スレッドで部分的に仕上げたデータをChanで流して
、受信した側でデータを総括する、初歩的な方式を思いついたので書き換えました
getChanContentsを使いましたが、EOFみたいな最後の通知方法が判らずに、全スレッドの処理が終わりもう誰もデータを流すことのないチャネルから性懲りもなく読みだそうとしてしまい
例外が発生して困っていました
幸いスレッドの数は判っているのでチャネルからtakeする数をスレッド数ちょっきりとして切り上げた所、遅延評価が幸いしてその先を読もうとしなくなり例外は発生しなくなりました(本質的解決かは判りません)
これにより処理が18分で終わりました
スレッド毎にcreateSystemRandomするように書き換えると21分かかるようになりました
オーバヘッド込みでも500分かかっていた時代から驚異的な進化を遂げました
憧れだった Software Transactional Memory は期待程速くなくがっかりしました
STMは最初に検討するべきではなく、巧く競合が発生しないように書けないときの最後の手段なのかなと思いました
917: 2021/09/30(木)16:59 ID:Ai6xyiAS(1) AAS
物理cpuが四つとかの擬似マルチスレッドではそんなに早くならないと思ってたけど、ものによってはそんなにも早くなるもんなんだな
918: 2021/10/04(月)21:32 ID:zxVeK0W2(1) AAS
と思ったら3950x gpuでほんとに物理スレッドがたくさんある場合の話か
919(1): 2021/10/05(火)23:20 ID:75xrYyRf(1) AAS
>>907
型注釈してないのに、インスタンスとして関数モナドが選択されるのはどうしてですか?
getLineが影響していますか?
920: 2021/10/06(水)01:58 ID:3ymQugFf(1) AAS
>>919
return 1 getLine は (return 1) getLine だから、
(return 1) が関数(a->b) じゃないと型が合わないんじゃないかな?
921: 2021/10/06(水)22:57 ID:MRfRTuXd(1) AAS
関数モナドと同じように、引数一つ取るモナド作ったらambiguousって怒られるかなと思ったんだけど、コンストラクタ書かないとならないからうまくいかない。
この値は関数モナドにしか解決されないのかな
922: 2021/10/07(木)09:52 ID:AVdaEi5L(1) AAS
C++のoperator()()に相当する演算を多重定義できないので曖昧ではない
923: 2021/10/17(日)18:41 ID:DQz0YbVB(1/2) AAS
なんjでめんだこって言う女装子がhaskell勉強していてdao of functional programmingっていう海外の人が書いた文献がわかりやすいってことでそれ読んでいるらしいが
ここの人にもそれ読んでいる人いる?
924(2): 2021/10/17(日)20:11 ID:LTEsEtXo(1/2) AAS
これか
The Dao of Functional Programming
外部リンク[pdf]:github.com
圏論関係の内容だな
925: 2021/10/17(日)20:37 ID:DQz0YbVB(2/2) AAS
>>924
すまんリンク探させてしまってすまない
ワイが貼るべきやった
ワイは圏論わからないから読まずじまいだったわ
いつか圏論習得できたらその際に読もうかなって思ってる
926: 2021/10/17(日)21:08 ID:LTEsEtXo(2/2) AAS
プログラミングの本質を学ぶには圏論について学ぶ必要があるということらしい
学んですぐ役立つというものではないようで、すぐ役立つ知識がお望みなら他をあたってくれ、とか
927: 2021/10/17(日)23:35 ID:QqhGhKAl(1) AAS
見せてもらおうか、圏論とやらを。
928: 2021/10/18(月)00:33 ID:BIt/UTxD(1) AAS
>>924
同じ著者の
Category Theory for Programmers
外部リンク:github.com
929: 2021/10/18(月)02:49 ID:mrfOLNSK(1) AAS
また圏論か
もういいよ
930: 2021/10/18(月)12:08 ID:7GcdH/zA(1) AAS
さあ ねがいを いえ
931: 2021/10/18(月)15:15 ID:r9t2S6+p(1) AAS
動画リンク[YouTube]
外部リンク[html]:bangumi.ouj.ac.jp
932: 2021/10/22(金)12:14 ID:9P3eVRHd(1) AAS
Free monad とは何か? の、シンプルかつ的を射た説明がsrackoverflowにあった。
(John Wiegley の回答)
外部リンク:stackoverflow.com
これを読んでから他の色んなFree monadの記事を読むと、すんなり理解できる。
これ、本質がよく解っている人の回答だよね。
こんな格好良く回答ができるよう精進したい。
933: 2021/10/22(金)21:20 AA×

934: 2021/10/22(金)23:18 ID:5ielnrPe(1) AAS
haskellってpythonに影響与えてるんやな
どおりで雰囲気似てる感じするんか
935: 2021/10/23(土)01:09 ID:o3xA5lbA(1) AAS
レイアウトと呼ばれるインデントスタイルは、Pythonが1991年に最初にリリースであり、85年以前にあった
Mirandaを参考に1990年にHaskellは登場したはず。
936(3): 2021/10/29(金)12:55 ID:SqmTIce6(1) AAS
不動点演算子がわからなくて泣ける
再帰呼び出しになってないのに再帰になってるのはわかるんだけど
937(1): 2021/10/29(金)18:35 ID:ZN5Hp6rJ(1/2) AAS
>>936
何が分からないのか分からない
938(1): 2021/10/29(金)18:40 ID:uCUCIWXe(1) AAS
>>937
なんでわかるんや?
才能か?
後不動点定理がわからん
勉強しろって言われてるけど
939: 2021/10/29(金)20:05 ID:1mMf/Evz(1) AAS
遅延評価の才能がないと x = f x を思いつかないんだよな
y f = f (y f) しか分からない
940: 2021/10/29(金)21:04 ID:ZN5Hp6rJ(2/2) AAS
>>936 の何もかもが、こちらには分からない。
愚痴を言いたいだけなのか、それとも何か質問をしたいのか。
後者なら、質問内容は何か。
>>938
> 後不動点定理がわからん
それだけなら、勉強してくださいとしか言いようがない。
勉強しろと言われているのなら、何か資料が配られたり、
参考文献が挙げられたりしていないのか?
そういうのが既にあるのなら、取りあえず全てに当たって、
今分かる部分と分からない部分を徹底的に細かく仕訳してみればいいのでは?
941: 2021/11/05(金)06:38 ID:UB8UVAT8(1) AAS
>>936
分からないのは何故再帰処理してるのかじゃなくて(そこは定義的に明らかだし)、
どうして無限ループせずに終了するのかでいいのかな
942(1): 2021/11/14(日)05:07 ID:HK5ctRa0(1) AAS
やっと Monad クラスから return が消えるよ
まだ計画段階たけど
外部リンク:github.com
943(1): 2021/11/14(日)21:26 ID:bsdXePE0(1) AAS
なんで消すの?
上下前次1-新書関写板覧索設栞歴
あと 59 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.023s