21/05/29 14:13:39.92 SnGl3AHf.net
win10でstackとかghcそのものは正常に入るんたけどパッケージのコンパイルが絡んでくるとどうも文字コードが原因でコケる
LANG=asciiにすると挙動が変わってくるんだけど、何にしとくのが正解なんだろ
858:デフォルトの名無しさん
21/05/29 16:46:49.24 1zrkc3qO.net
100万要素の配列の1要素を更新するために配列の再作成が必要?
URLリンク(www.quora.com)
> Haskell naturally operates on lists, but is rather awkward with arrays. Pure functions do not modify their input, so a pure function that changes one element of a million element array will copy 999,999 elements into a second array and return that. You can get around this with monads, but you end up writing imperative code in something that is less flex
859:ible than real imperative code. これをモナドとアクションで解決できる?どうやるのか?
860:デフォルトの名無しさん
21/05/30 20:49:58.16 QwiNWDL1.net
STArrayなりMutable Vectorなり使えば良いのでは
861:デフォルトの名無しさん
21/05/30 22:25:02.60 F1Ogq3BP.net
Unsafe でok
所詮物理的にはハードウェア上で動いてるのだから、
副作用なしなんてただの幻想よ
862:デフォルトの名無しさん
21/05/31 09:29:30.68 O6iiWxP2.net
副作用の意味を勘違いしていないといいのだけれど・・・
863:デフォルトの名無しさん
21/05/31 10:43:40.87 xvi5eoqv.net
Rustと同じように、どうにかして型を弱くすれば副作用は好きなだけ使えるよ
864:デフォルトの名無しさん
21/06/01 02:01:57.33 4I1ndF8a.net
IOモナドやSTモナドの中でファイル操作したり現在時刻取って来たりしても問題無いわけだしわざわざ型犠牲にしなくても良いんじゃない
865:デフォルトの名無しさん
21/06/01 10:15:13.07 UuHFoCEt.net
書き方が何通りもあってコンパイルが通るのは客観的事実だよ
そんな書き方しなくても良いというのはまあ政治的にはそうなるわけだが
コンパイルエラーにならないのに、バラモンみたいな人間に色々言われると混乱しやすい
866:デフォルトの名無しさん
21/06/01 22:12:35.15 HETOiJgb.net
自然に書いたhaskellコードが極端に遅いという2018年の記事
URLリンク(pl-rants.net)
867:デフォルトの名無しさん
21/06/03 20:42:08.53 /+9iJa2F.net
>>848
自己解決
language-javascriptパッケージのソースのコメントに∉記号がutf8で入ってて、環境によっては違うエンコードで読み込んでエラーになるっぽい
誰かが開発者にワークアラウンドとしてコメントをasciiで書き直してくれとリクエストしてたけど、ビルド環境を整えるのはstackの仕事だから俺は知らんと一蹴されてた
まぁそりゃそうなんだけどさ...
868:デフォルトの名無しさん
21/06/05 01:35:57.62 qvRyjOjC.net
>>857
なんという罠…
これ引っかかった人結構いそう
869:デフォルトの名無しさん
21/06/05 12:32:22.17 aDKd5nip.net
プログラミング最大の罠のひとつ
自分で創作するよりも他人のソースを読む方が難しい
870:デフォルトの名無しさん
21/06/07 12:42:09.06 k7DmZ27b.net
昨日の自分は他人です
871:デフォルトの名無しさん
21/06/07 20:28:43.19 qbMAaCDK.net
去年書いたコードが理解できない
872:デフォルトの名無しさん
21/06/07 22:37:59.06 +U7TScWJ.net
そりゃあ人間の能力は老化とともに衰えるから仕方ないね
873:デフォルトの名無しさん
21/06/07 22:55:42.12 OC0V43xk.net
ここ1, 2年で自分が書いたソースが回ってくることがあるけどほとんど覚えていなかった
今から振り返るともっといいやり方が思いつくけど、他人が書いたコードより遥かに行儀が良くて読みやすかった
874:デフォルトの名無しさん
21/07/01 09:54:29.98 yiVYCTXd.net
Hmatrixはcabalで入れたのにghciから:m Numeric.LinearAlgebraや
import Numeric.LinearAlgebraで行列演算モジュールを入れようとすると、
<no location info>: error:
Could not find module ‘Numeric.LinearAlgebra’
Perhaps you haven't installed the "dyn" libraries for package ‘hmatrix-0.20.2’?
Use -v to see a list of the files searched for.
とエラーが出るのだけど、よく分からない。ホームディレクトリにHmatrixのファイルっぽい
ものを置いてもダメ。Numericのフォルダをホームディレクトリに置いてもダメ
分かる人、教えてくださいm(_ _)m
古いパソコンの仮想linuxに入っている奴はimport Numeric.LinearAlgebraで
通常通り動くけど、その他のPCでは動かないんだよね。前は動いていたのもあったけど
ファイル関係いじくり回してたら、設定が狂ったようで動かなくなった
関数型言語で行列演算さえ、導入にこれだけ苦労するとは、どういうことだいw
875:デフォルトの名無しさん
21/07/01 13:56:29.22 m444U3IV.net
> ファイル関係いじくり回してたら、設定が狂ったようで動かなくなった
ちゃんとドキュメント読んでないよね?
876:デフォルトの名無しさん
21/07/01 18:53:55.58 dccggDtp.net
ghciでimportを複数すると、プロンプトが
Prelude Data.Monoid Data.Traversable Data.Foldable>
と長くなってしまうので、importしたの表示しないようにするにはどうしたらいいのですか?
877:デフォルトの名無しさん
21/07/01 18:56:14.18 dccggDtp.net
すまん、自己解決した
:set promptを使えばいいのか
promptでググれば良かった
878:デフォルトの名無しさん
21/07/01 22:45:34.96 FFAeznD4.net
quarifiedも使えるよ
お好みで
879:デフォルトの名無しさん
21/07/02 03:41:23.49 aoQxpJoS.net
>>864
ghciのコマンドライン引数に、使用したいパッケージを指定するものがなかったっけ?
baseパッケージ以外はちゃんと引数で明示しないとghci上で使えなかったような気がする。
880:デフォルトの名無しさん
21/07/10 00:45:51.28 FlY7oUIG.net
すいません
質問させて下さい
Ghc.Types というのを眺めてたんですが
謎の#が入ってるコンストラクターがいっぱい見えます
data {-# CTYPE "HsInt" #-} Int = I# Int#
data {-# CTYPE "HsDouble" #-} Double = D# Double#
newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))
などなど
なんですかコレ?
一方でたとえばDoubleはReal classに属してるのでsinとかlogとかの処理をどこかでやってると思うのですがどこにも見つけられません
もちろんこんなプリミティブな演算はHaskellではなくCとかに丸投げしてるんでしょうけどその手の宣言なりなんなりはないもんなんですか?
881:デフォルトの名無しさん
21/07/10 08:27:37.09 9m9xryS6.net
URLリンク(wiki.haskell.org)
記事内リンクも見てね
882:デフォルトの名無しさん
21/07/10 09:09:34.41 Qo9dk8cs.net
>>871
なるほど
まだよくわかってないですけどunboxed typeというやつなんですね
後半もどなたか分かりませんか?
実は事情で“多倍長の浮動小数点”を自作したいのです
そのためにはReal型にしなくてはならずsinとなlogとか結構ある数の関数を実装する必要があります
どこかに参考にできるライブラリ転がってませんか?
性能は求めないので多倍長精度の計算ができるReal型を実装してる例が欲しいです
883:デフォルトの名無しさん
21/07/10 09:23:00.75 Qo9dk8cs.net
間違えた
Float classがsinとかいっぱいあって難しいです
884:デフォルトの名無しさん
21/07/10 09:25:56.65 Qo9dk8cs.net
違う
Floating
orz
885:デフォルトの名無しさん
21/07/10 12:08:32.98 5i+2sdHC.net
URLリンク(github.com)
ライブラリがありそうな気がするけど、ghcクローンしてやりたいことできるか調べてみたら
886:デフォルトの名無しさん
21/07/10 12:28:39.86 5i+2sdHC.net
hackageをfloatで検索した結果。怪しそうなやつ:
URLリンク(hackage.haskell.org)
URLリンク(hackage.haskell.org)
887:デフォルトの名無しさん
21/07/10 23:01:22.87 zugIw5Ja.net
あざっす
ソース読んで研究しまつ
888:デフォルトの名無しさん
21/07/11 06:49:31.34 .net
リストのシャッフルは、2値ランダムと分割統治法で構成できるという境地に至った
889:デフォルトの名無しさん
21/07/11 16:41:58.17 KhXXWhgG.net
余談だけど
オードリー・タン氏に性的に食指が動く
男性っているのかな。
890:デフォルトの名無しさん
21/07/16 17:38:36.16 .net
あののののの! なんで型コンストラクタ名が被ったらいけないんですか!
型が違うならそのコンストラクタ名くらい被ったっていいじゃないですか!
891:デフォルトの名無しさん
21/07/16 23:35:14.79 .net
Esqueleto では SELECT ~ FROM ONLY an_table ~ みたいに ONLY を付けることで継承テーブルを対称から外すように指示することはできないんですか?
生SQLを書くしかありませんか?
892:デフォルトの名無しさん
21/07/17 15:02:59.17 eTC1af8g.net
>>879
ちょまどは鳳唐好きだって言ってた
893:デフォルトの名無しさん
21/07/17 17:39:27.65 44fEdIj7.net
私は、MBAを取るために、ハワイにある伝統的なビジネススクールに通っていたとき、どこかの大企業で
働く中間管理職が教えるマネジメント「論」や経済「論」を学ぼうとしている自分に気付いた。
ビジネス経験のない先生は、学校制度の外に一度も出たことがない人だ。つまり彼は、5歳で幼稚園に入ってから
ずっと学校制度の中にいるにもかかわらず、学生たちに実社会について教えようとしていることだ。
とんだお笑い草だと思った。
講師陣や中間管理職や教師のほとんどは、ゼロからビジネスを立ち上げるのに何が必要なのかについては何も知らなかった。
ロバートキヨサキ「人助けが好きなあなたに贈る金持ち父さんのビジネススクール」P62~63
彼らのほとんどは、学校という象牙の塔を出ると、企業社会という象牙の塔に入った。
安定した仕事と給料に依存していた。つまり、素晴らしいビジネス論をもっている人は
たくさんいたが、現実の世界でビジネスをゼロから立ち上げ、大きな富を蓄えるのを可能にする、
素晴らしいビジネススキルのある人はほとんどいなかったということだ。
彼らのほとんどは給料なしで生きていけなかった。
ロバートキヨサキ「人助けが好きなあなたに贈る金持ち父さんのビジネススクール」P63
894:デフォルトの名無しさん
21/07/17 18:54:41.40 lhv7ZvYo.net
言語設計者に対する悪口はそこまでにしてやれ
895:デフォルトの名無しさん
21/07/18 08:48:06.51 p5uFvWrN.net
まあ、生きていけないぞー死ぬぞーってのが机上の空論の中でも最悪の論だよな
実際には死なない人が多い
896:デフォルトの名無しさん
21/07/18 22:53:21.56 .net
すいません、僕がスレを軽率に上げてしまったばっかりにワードサラダBOTの餌食なってしまうとは・・・
897:デフォルトの名無しさん
21/07/19 09:08:56.51 Niob4uA5.net
現状これはとりあえず有効にしとけみたいなGHC拡張ってなにがありますか
898:デフォルトの名無しさん
21/07/19 10:46:43.62 jaES3hbu.net
>>887
無いです。
必要なときにのみ必要なだけ宣言するといいです。
899:デフォルトの名無しさん
21/07/26 04:08:52.62 FlIQ/SVE.net
URLリンク(cognicull.com)
Haskellやるのにこの辺は履修済みであることが求められるの?
Obj-Cだとほぼなくてもアプリは書けるけども
Haskellって数学じゃないのに数学のフリしてるところあるよね
利用者も然りで余計混乱を招いてる気がする
900:デフォルトの名無しさん
21/07/26 12:01:28.04 nPPC7Onz.net
>>889
うーん、書きたいプログラムの内容によるとしか言えないかな
こうしたことがわからないとHaskellのプログラムが書けないということはない
そのあたりはObjective-Cと同じ
901:デフォルトの名無しさん
21/07/27 03:35:04.64 .net
Data.Arrayって廃止されたの?
GHC.Arr を使えってこと?
902:デフォルトの名無しさん
21/07/27 05:37:33.58 O4N47kXx.net
>>891
Data.Array は array パッケージにあります。
903:デフォルトの名無しさん
21/07/27 15:27:28.97 6BJr6nx6.net
>>889
フリじゃなくて実際、他のメジャー言語よりは数学的裏付けがされてると思う
利用者も然りなのはむしろ良い傾向
他言語はhaskell以上に、ウェイがノリで書いたようなゴミライブラリが流行ってたり、侍エンジニアレベルのゴミ文献が蔓延ってたりする阿鼻叫喚状態
904:デフォルトの名無しさん
21/07/28 02:22:30.38 .net
>>892
詳しい情報サンクス
905:デフォルトの名無しさん
21/07/30 13:54:44.53 kX7UidPf.net
>>889
Haskell書いてるときにそういう系統の知識が要求されたことはないなぁ、いくつかの概念の出自が圏論だと聞いたことはあるが
906:デフォルトの名無しさん
21/07/30 14:32:21.44 yBIo03BR.net
すごいHaskellに素晴らしい数学の解説書ってレビューがついてた時はクスっと来たけど
907:デフォルトの名無しさん
21/08/02 07:34:32.07 Rllz2LO9.net
例えばOOPの継承関係を否定する
否定するなら対案を出せと言われる
この過程は数学ではないけど結果的には半順序関係とか圏とか出てくる
908:デフォルトの名無しさん
21/08/16 04:30:28.47 aZY1/RTa.net
純粋関数型でキャッシュは実装可能?
例えばOOPでは計算に時間がかかる値はキャッシュしておいて次の読み取りで
キャッシュから返すという事ができる。
このキャッシュの管理をOOPらしいカプセル化によってまともに実装できる
909:デフォルトの名無しさん
21/08/16 18:24:35.56 O8pAbV/G.net
>>898
可能です。
memoization をキーワードに調べてみてください。
910:デフォルトの名無しさん
21/08/18 20:19:16.73 MamsdVYI.net
>>66
オブジェクト指向プログラミングにおける Smalltalk 的な位置づけに来るんじゃないかな。
ガッチガチだから強制的に「その概念」に染まれる。
911:デフォルトの名無しさん
21/08/19 00:24:27.59 anV9aH6F.net
低級言語でインタプリタを作れそうなシェルスクリプト的な位置づけだよ
単一の高級言語を強制されない
912:デフォルトの名無しさん
21/08/19 16:00:36.29 IKqVi/r3.net
関数型言語ってリストとかツリーみたいな再帰的なデータ構造扱うのは得意だけど
有向・無向グラフ(のアルゴリズム)扱うの難しくない?
913:デフォルトの名無しさん
21/08/19 18:40:13.11 JntO5v5E.net
>>902
難しいと感じるかどうかは本人の気持ちなので何とも言えません。
ただ、haskellでのグラフ理論の扱いに関しては、
カジュアルな解説もフォーマルな論文もたくさんあります。
ライブラリもあります。
扱ったことはないけど、何となくイメージだけで
難しそうだ、
haskellの苦手分野だと思っているのであれば、
自分に読めそうな記事にいくつかトライしてみてはどうでしょうか。
914:デフォルトの名無しさん
21/08/19 21:01:34.14 anV9aH6F.net
>>902
Erlangのようなメッセージ送信を考えればわかるが
メモリを共有していない相手にも送れるデータ構造が得意
メッセージとして文字列ばかり使ってるとカプセル化も型情報も無駄になる
だから文字列に似ているが異なるデータ構造が役に立つ
915:デフォルトの名無しさん
21/08/25 21:36:21.14 NimliznV.net
Applicativeの(*>)演算って何の意味があるの?
第一引数はどうせ捨てられるんでしょ。
916:デフォルトの名無しさん
21/08/25 23:09:37.51 SkXNk2uR.net
確かに左辺 :: f aで言うところのa型の値は捨てるが
Maybeとか[]みたいな直和型でどの値コンストラクタを使って構築されたかの情報は影響するよ
917:デフォルトの名無しさん
21/08/26 21:35:42.38 Wv9PZvrP.net
>>906
それは第1引数をパターンマッチすることで、たとえ第2引数が同じ値でも、
(*>)の計算結果を変えられることに意味があるってこと?
Sum型やProduct型もApplicativeのインスタンスになってるけど、
これらだと(*>)には意味がない?
(当然(<*>)など他の演算には意味があると思うけど)
918:デフォルトの名無しさん
21/08/28 14:58:50.16 WIQMD65A.net
>>905
Parsecで左辺の句がいらないときに使う
919:デフォルトの名無しさん
21/09/01 17:56:43.60 .net
ぼくようメモ:
OpenSUSE でPostgreSQLを使用した開発をしていてstack buildで
postgresql-libpq パッケージを途中にビルドする際
pg_config が無いと言われコケることがある
背景: OpenSUSE は postgres-devel から pg_config を削除した。我々は libpq.pc を代わりに使うべきである。
ソース: URLリンク(redmine.lighttpd.net)
解決法:
stack build --flag postgresql-libpq:use-pkg-config
としてビルドする
920:デフォルトの名無しさん
21/09/08 22:14:55.40 .net
そうか!Trueskill のHaskell実装がなくて論文読んで自分で実装する力がなくても
Haskellから実行時にbash 呼び出してPython3 のTrueskillライブラリに標準入力でPythonコードを流し込んで
演算結果を文字列で貰ってきて、それをParserCombinatorで作った字句解析器で読み取ってHaskellのデータに戻せばいいじゃん
あたいったら天才ね!
921:デフォルトの名無しさん
21/09/09 09:49:18.76 rktYy8hS.net
s/天才/脳筋/
922:デフォルトの名無しさん
21/09/10 01:55:27.29 bkZL74IR.net
関数定義の左辺の部分的で、関数名と仮引数名の後の | と = の間の部分って何て名称だっけ?
f x y | x < y = ...
これの x < y の部分。
あるいは関数定義をこう書く方法の呼び方とか。
この文法や制限などをネットで調べたいんだけど、
名称が思い出せず検索に難儀してる。
できれば英語でお願い。
923:デフォルトの名無しさん
21/09/10 03:22:07.48 bkZL74IR.net
>>912
すまん、思い出した、guard だ。
924:デフォルトの名無しさん
21/09/10 22:23:35.11 kwXNo1Gk.net
>>911
g を忘れてね?
925:デフォルトの名無しさん
21/09/22 10:43:55.15 02VLVXq+.net
パターンの質問です
Rational型の数が平方数であるかどうか判定するプログラムで
isSquare r = r >= 0 && r == ( sqrtR r )^2
sqrtI = truncate . sqrt . fromInteger
sqrtR r = let
( a, b ) = ( numerator r, denominator r )
in ( sqrtI a ) % ( sqrtI b )
というのを書きました
もちろんこれはうまくいきます
しかし numerator, denominator をいちいち取り出すのが鬱陶しいので
sqrtR ( a :% b ) = ( sqrtI a ) % ( sqrtI b ) ------- ①
と書きたかったのですがうまくいきません
926:デフォルトの名無しさん
21/09/22 10:44:01.62 02VLVXq+.net
ネットで調べると
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
numDenum :: Integral a => Ratio a -> (a,a)
numDenum x = ( numerator x, denominator x )
pattern ( :% ) :: Integral a => a -> a -> Ratio a
pattern a :% b <- ( numDenum -> ( a,b ) )
where a :% b = a % b
というおまじないがstack exchangeで見つかってコレつけるとうまく行きました
うまくいったんですがサッパリわかりません
コレ何者ですか?
そもそも①はなんでうまく動かないんですか?
927:デフォルトの名無しさん
21/09/22 11:58:51.92 Sp73Mnte.net
計算結果をパターンマッチさせようとして失敗してるのでは
値を値コンストラクタにばらしてその値コンストラクタに応じて処理を変えるのがパターンマッチ
(マッチさせる対象がList aなら、:なのか[]なのかに応じて「先頭:後ろ」か空リストかが束縛される)
で、計算結果をマッチさせたいならビューってのを定義してあげないといけませんよって話のような
928:デフォルトの名無しさん
21/09/22 18:38:05.18 02VLVXq+.net
>>917
レスありがとうございます
原因わかりました
ご指摘の通り「計算結果にはパターンマッチさせられない、パターンマッチに入っていい関数はコンストラクタのみ」なのでRatio a型のコンストラクタである( :% )を使ってたのでそこは問題ないと思ってたんですが肝腎要の( :% )が定義されてるGHC.Realをimportしてませんでした
Data.Ratioをimportしたら自動的に(:%)も使えるもんだと思い込んでいました
Pattern synonymsについては
URLリンク(qiita.com)
でちょっと理解できました、が、そもそも使わなくても良くなりました
ご協力感謝です
929:デフォルトの名無しさん
21/09/22 20:18:48.06 02VLVXq+.net
備忘録がてら調べてわかった事書いておきます
Pattern Synonyms は今回のようにライブラリの提供者が型のコンストラクタを提供してない、しかしパターンマッチは使いたいとかの場合に使える拡張のようです
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
を使うと
pattern ( マッチさせたい表現) <-
( その型から取り出したい値を取り出す関数)
-> ( 取り出した値にマッチさせるパターン) )
( where さらにコンストラクタシノニムとしても使いたい場合の逆変換関数 )
の形で使うようです
例えばInt型でxが偶数であった場合にdiv x 2をパターンマッチで拾うために
pattern TwiceOf x <-
( ( \t -> ( div t 2 , even t ) ) -> ( x, True ) )
のように定義しておいて
main = do
case 2 of { DoubleOf x -> print x; _ -> print "odd" }
case 3 of { DoubleOf x -> print x; _ -> print "odd" }
のように利用できるようです
TwiceOf はあくまでパターンマッチの表現のみで使える“仮の”コンストラクタですがpattern文にwhere句を
pattern DoubleOf x <-
( ( \t -> ( div t 2 , even t ) ) -> ( x, True ) )
where TwiceOf x = 2*x
のように追加するとあたかもInt型の新しいコンストラクタが追加されたように振る舞い“DoubleOf 2”
930:のような表現が許されるようになるようです 今回の場合はどうすべきか悩みどころです ライブラリの開発者が低レベルの(:%)を公開しない理由もわかるので無理クリ(:%)を使うのもどうなんつて気もするし、かと言ってまだHaskellの標準として認められてない、GHCでしか使えない拡張使うのもどうなんという気もするし
931:デフォルトの名無しさん
21/09/23 10:16:50.52 F+2SAjcM.net
>>919
> かと言ってまだHaskellの標準として認められてない、GHCでしか使えない拡張使うのもどうなんという気もするし
まさかGHCの言語拡張はすべて使わないつもりですか?
せっかくの表現力が著しく落ちますよ。
今あるいは将来 GHC 以外のツールでコンパイルする計画があるのなら仕方ありませんが、
そうでなければ言語拡張の使用を躊躇する理由が見あたりません。
私なら、
・プログラムが意図した動きをし、
・かつソースコードが読みやすくなる
なら言語拡張を積極的に利用します。
意図通り動くけど可読性が落ちるなら、そこで初めて迷いますね。
932:デフォルトの名無しさん
21/09/23 20:01:57.83 0hgEU0Ok.net
>>920
まぁそうですね
完全日曜プログラマーなので気分良く書けばいいか
933:デフォルトの名無しさん
21/09/26 07:18:33.81 m/60KM4j.net
Stack Overflow に面白い質問が投稿されていた。
要約すると return 1 getLine という式の型は Num t => t で、その値は 1 らしいんだが何で? というもの。
質問者は勘違いして、何で return と getLine が互いに打ち消し合うのかと訊いていたが。
URLリンク(stackoverflow.com)
なかなか興味深い。
考えてみると haskell の理解がいっそう深まる。
934:デフォルトの名無しさん
21/09/26 19:38:43.50 .net
最近並列処理を齧り始めました
ランダム値の生成にmwc-random パッケージの System.Random.MWC.createSystemRandom で生成した GenIO を、全体を通して利用する環境として Reader モナドに入れて使いまわしていたとします
ここにSTM で並列処理機能を新規に追加する場合、forkIO したスレッド内で一々そのスレッド専用に GenIO を生成し直すべきでしょうか?
というのは、それをしないと
各スレッドで共通の GenIO がコピーされ使用される場合、各スレッドで同じ値が生成されていってしまいランダムの意味をなさないのではないかと思うからです
ではこの疑似ランダム生成器を TVar に入れるかとなると、資源の取り合いになって、1スレッド時よりパフォーマンスが低下して元も子もないではないかという懸念があります
ここまで思考実験すると、やはり forkIO したスレッド毎に一々、その中で専用の疑似ランダム生成器を新調する必要があるという考えに至りました
スレッド数が多くなると疑似ランダム生成器を作るコストがバカにならなくなっていくでしょうが、その辺は頑張るしかないよということで、ぼくの考えは合っていますか?
935:デフォルトの名無しさん
21/09/26 21:46:38.01 m/60KM4j.net
>>923
そこまでしっかり考察したのなら、質問する前にまず実験してみようよ。
936:デフォルトの名無しさん
21/09/27 16:47:57.85 .net
>>924
実験してみたら、各スレッドで別の値が生成されていました
しかしドキュメント見ると It uses mutable state so same generator shouldn't be used from the different threads simultaneously.と書いてあるんですが
これはどう受け取ったらいいんですかね
各スレッドで別の値が生成されているなら用を為してる(ように思える)からいいじゃないかとも思うのですが
何か別の理由があって、そう思えてもやはり使うなという事なんでしょうか?
937:デフォルトの名無しさん
21/09/27 18:11:25.46 XYchXu+H.net
>>925
mutable stateの排他制御をしてないから複数のスレッドで実行するとまずいことが起こるかもしれない、ってことじゃないの?
排他制御
URLリンク(ja.wikipedia.org)
938:デフォルトの名無しさん
21/09/27 20:38:39.08 MDVYajz0.net
>>925
パフォーマンスの実験もね。
理論上パフォーマンスが落ちると分かっていても、実用上は問題ない場合も多い。
939:デフォルトの名無しさん
21/09/29 15:57:53.68 lU7q1h04.net
>>922
そこで関数モナドが出てくるのは知らないと思い至らないなあ
勉強になった
940:デフォルトの名無しさん
21/09/30 07:09:39.49 N1l0weLI.net
>>922
セミコロンを書かない言語ではすべからく改行直後に
(getLine)と書くとどうなるか問題が出てくる
941:デフォルトの名無しさん
21/09/30 09:21:54.92 LH+TfD4u.net
すべからく警察だ!
942:デフォルトの名無しさん
21/09/30 09:22:48.41 .net
>>926
具体的にどういうケースでどういう問題が起こるか解らないので、取り敢えずドキュメントにスレッド間で共有はやめろとある以上、大人しく従うことにします
>>927
STM版が、3950Xエコモードシングル500分の処理が30スレッド割り当てで220分くらいになりましたが
CPU使用率も75%前後で残念でした
競合するリソースが多過ぎたからではと思い、競合を避ける事を考えていると
そもそもSTMを使わず、スレッド毎にローカルにデータを貯めて処理して最後に各スレッドで部分的に仕上げたデータをChanで流して
、受信した側でデータを総括する、初歩的な方式を思いついたので書き換えました
getChanContentsを使いましたが、EOFみたいな最後の通知方法が判らずに、全スレッドの処理が終わりもう誰もデータを流すことのないチャネルから性懲りもなく読みだそうとしてしまい
例外が発生して困っていました
幸いスレッドの数は判っているのでチャネルからtakeする数をスレッド数ちょっきりとして切り上げた所、遅延評価が幸いしてその先を読もうとしなくなり例外は発生しなくなりました(本質的解決かは判りません)
これにより処理が18分で終わりました
スレッド毎にcreateSystemRandomするように書き換えると21分かかるようになりました
オーバヘッド込みでも500分かかっていた時代から驚異的な進化を遂げました
憧れだった Software Transactional Memory は期待程速くなくがっかりしました
STMは最初に検討するべきではなく、巧く競合が発生しないように書けないときの最後の手段なのかなと思いました
943:デフォルトの名無しさん
21/09/30 16:59:33.11 Ai6xyiAS.net
物理cpuが四つとかの擬似マルチスレッドではそんなに早くならないと思ってたけど、ものによってはそんなにも早くなるもんなんだな
944:デフォルトの名無しさん
21/10/04 21:32:31.29 zxVeK0W2.net
と思ったら3950x gpuでほんとに物理スレッドがたくさんある場合の話か
945:デフォルトの名無しさん
21/10/05 23:20:55.55 75xrYyRf.net
>>922
型注釈してないのに、インスタンスとして関数モナドが選択されるのはどうしてですか?
getLineが影響していますか?
946:デフォルトの名無しさん
21/10/06 01:58:31.84 3ymQugFf.net
>>934
return 1 getLine は (return 1) getLine だから、
(return 1) が関数(a->b) じゃないと型が合わないんじゃないかな?
947:デフォルトの名無しさん
21/10/06 22:57:04.48 MRfRTuXd.net
関数モナドと同じように、引数一つ取るモナド作ったらambiguousって怒られるかなと思ったんだけど、コンストラクタ書かないとならないからうまくいかない。
この値は関数モナドにしか解決されないのかな
948:デフォルトの名無しさん
21/10/07 09:52:08.72 AVdaEi5L.net
C++のoperator()()に相当する演算を多重定義できないので曖昧ではない
949:デフォルトの名無しさん
21/10/17 18:41:32.26 DQz0YbVB.net
なんjでめんだこって言う女装子がhaskell勉強していてdao of functional programmingっていう海外の人が書いた文献がわかりやすいってことでそれ読んでいるらしいが
ここの人にもそれ読んでいる人いる?
950:デフォルトの名無しさん
21/10/17 20:11:52.85 LTEsEtXo.net
これか
The Dao of Functional Programming
URLリンク(github.com)
圏論関係の内容だな
951:デフォルトの名無しさん
21/10/17 20:37:14.39 DQz0YbVB.net
>>939
すまんリンク探させてしまってすまない
ワイが貼るべきやった
ワイは圏論わからないから読まずじまいだったわ
いつか圏論習得できたらその際に読もうかなって思ってる
952:デフォルトの名無しさん
21/10/17 21:08:39.75 LTEsEtXo.net
プログラミングの本質を学ぶには圏論について学ぶ必要があるということらしい
学んですぐ役立つというものではないようで、すぐ役立つ知識がお望みなら他をあたってくれ、とか
953:デフォルトの名無しさん
21/10/17 23:35:51.47 QqhGhKAl.net
見せてもらおうか、圏論とやらを。
954:デフォルトの名無しさん
21/10/18 00:33:18.04 BIt/UTxD.net
>>939
同じ著者の
Category Theory for Programmers
URLリンク(github.com)
955:デフォルトの名無しさん
21/10/18 02:49:04.06 mrfOLNSK.net
また圏論か
もういいよ
956:デフォルトの名無しさん
21/10/18 12:08:52.29 7GcdH/zA.net
さあ ねがいを いえ
957:デフォルトの名無しさん
21/10/18 15:15:47.20 r9t2S6+p.net
URLリンク(www.youtube.com)
URLリンク(bangumi.ouj.ac.jp)
958:デフォルトの名無しさん
21/10/22 12:14:30.91 9P3eVRHd.net
Free monad とは何か? の、シンプルかつ的を射た説明がsrackoverflowにあった。
(John Wiegley の回答)
URLリンク(stackoverflow.com)
これを読んでから他の色んなFree monadの記事を読むと、すんなり理解できる。
これ、本質がよく解っている人の回答だよね。
こんな格好良く回答ができるよう精進したい。
959:デフォルトの名無しさん
21/10/22 21:20:57.92 .net
UTF-8 のHaskell ソースコードに書き込んだ日本語文字列を通信先に渡す為に Shift_JIS の String にしたいのですが
module Main where
import Data.Text.ICU.Convert as ICU
import Data.Text as T
import Data.ByteString.Char8 as BS
main :: IO ()
main = do
conv <- open "Shift_JIS" Nothing
let
utf8txt = T.pack "皆は、赤ちゃんしゅきぃ?"
sjis_bs = fromUnicode conv utf8txt
この sjis_bs をどうしたら Shift_JIS の String になるんですか?
BS.unpack だと
ツ皆ツづ債、ツ静板つソツづ。ツづアツつオツづ」ツつォツつ。ツ?
になってしまいます
960:デフォルトの名無しさん
21/10/22 23:18:21.74 5ielnrPe.net
haskellってpythonに影響与えてるんやな
どおりで雰囲気似てる感じするんか
961:デフォルトの名無しさん
21/10/23 01:09:52.51 o3xA5lbA.net
レイアウトと呼ばれるインデントスタイルは、Pythonが1991年に最初にリリースであり、85年以前にあった
Mirandaを参考に1990年にHaskellは登場したはず。
962:デフォルトの名無しさん
21/10/29 12:55:32.45 SqmTIce6.net
不動点演算子がわからなくて泣ける
再帰呼び出しになってないのに再帰になってるのはわかるんだけど
963:デフォルトの名無しさん
21/10/29 18:35:44.90 ZN5Hp6rJ.net
>>951
何が分からないのか分からない
964:デフォルトの名無しさん
21/10/29 18:40:46.51 uCUCIWXe.net
>>952
なんでわかるんや?
才能か?
後不動点定理がわからん
勉強しろって言われてるけど
965:デフォルトの名無しさん
21/10/29 20:05:05.45 1mMf/Evz.net
遅延評価の才能がないと x = f x を思いつかないんだよな
y f = f (y f) しか分からない
966:デフォルトの名無しさん
21/10/29 21:04:54.17 ZN5Hp6rJ.net
>>951 の何もかもが、こちらには分からない。
愚痴を言いたいだけなのか、それとも何か質問をしたいのか。
後者なら、質問内容は何か。
>>953
> 後不動点定理がわからん
それだけなら、勉強してくださいとしか言いようがない。
勉強しろと言われているのなら、何か資料が配られたり、
参考文献が挙げられたりしていないのか?
そういうのが既にあるのなら、取りあえず全てに当たって、
今分かる部分と分からない部分を徹底的に細かく仕訳してみればいいのでは?
967:デフォルトの名無しさん
21/11/05 06:38:08.04 UB8UVAT8.net
>>951
分からないのは何故再帰処理してるのかじゃなくて(そこは定義的に明らかだし)、
どうして無限ループせずに終了するのかでいいのかな
968:デフォルトの名無しさん
21/11/14 05:07:45.42 HK5ctRa0.net
やっと Monad クラスから return が消えるよ
まだ計画段階たけど
URLリンク(github.com)
969:デフォルトの名無しさん
21/11/14 21:26:09.61 bsdXePE0.net
なんで消すの?
970:デフォルトの名無しさん
21/11/15 02:14:35.96 jBQU3T8q.net
>>958
Applicativeクラスにpure関数があるから。
Monad則やApplicative則を満たしてるなら、
まず間違いなく pure = return だから片方で充分。
それにreturnって名前があまりに実態とかけ離れてるしね。
971:デフォルトの名無しさん
21/11/15 12:46:13.83 KyLp+2Ep.net
初歩的な質問ですが、複数の設定ファイル読み込みするのに
readFile で全体取得してから処理するのと
withFile で hGetLine しながら処理するのではどちらがいいとかありますか?
主に処理速度の点について聞きたいです。
972:デフォルトの名無しさん
21/11/15 18:22:40.27 W9vQbDtp.net
>>960
そういうのは、自分で実験すればすぐに確かめられるのでは?
973:デフォルトの名無しさん
21/11/15 21:51:56.85 NLyY6NK4.net
>>959
Applicativeにpureがあるのはなんで?
Monadのreturnだけにするのは変ですか?
零元がApplicativeの責務なのがピンときてないんです。Monadだと何と合わないんでしょう
974:デフォルトの名無しさん
21/11/16 02:22:00.49 EE8p/B0u.net
>>962
できるだけ一次情報に当たりましょう。
>>957 のリンク先の Planned: remove return from Monad の項目の
Proposal のリンク先を読んで下さい。
(更にその先の dudcusdion なども)
それが最も正確で、かつ、分かりやすいです。
975:デフォルトの名無しさん
21/11/16 21:38:06.78 au51kzu/.net
正確に綴ってくれ
976:デフォルトの名無しさん
21/11/16 22:40:31.75 t6DDIn3B.net
読んでみたけどよくわかんないなあ。AMPを満たすためにApplicative m => Monad mが必要ってことは書いてあるようだけど
Monadからreturnを削除して、pureに統一する理由って書いてあるかな?
読み飛ばしたかもしれんけど。
return = pureだから、統一しても同じっていうのは分かるんだけど、Applicativeにpureが必要な理由がわからない。
Applicativeの4つのルールを満たすためにpureが必要なことは、Applicativeの定義に書いてあるけど、圏論わかんないから、このルールが何で必要なのか分からん。
Monoidal Functor?とかいうやつの表現のために単位元(零元じゃなかったね)が必要なんだろうけど、圏論わからんないから分からん。
Monoidと関係あるんだろうか。それなら加法のために単位元が必要なのはわかるんだけど。
977:デフォルトの名無しさん
21/11/16 22:42:08.60 t6DDIn3B.net
誰か噛み砕いて教えて下さい
978:デフォルトの名無しさん
21/11/17 06:46:33.09 4zMdVbrs.net
より抽象度の高い方であるApplicativeのpureを生かすのは
私はごく自然に感じるけど
mappendと<>も機能的にダブってるから
将来Monoidからmappendが消えるよって
Monoidのドキュメントに書いてあるけど
もしかしてそれも疑問だったりする?
Semigroupの方から<>を消して、
Monoidのmappendを残すんじゃダメなの? って
979:デフォルトの名無しさん
21/11/17 08:05:13.47 fLzDfeGp.net
>>965
圏論は一切関係なく、いかに誤りの無いプログラムが書けるか、
またソースコードが読みやすくなるかという実用的な理由です。
そういう観点でもう一度読んでみてください。
Haskellは実用的な汎用プログラミング言語であることを目指して作られました。
なので、今回のような理由での提案は個人的にはすごく納得できるし、大賛成です。
980:デフォルトの名無しさん
21/11/17 12:44:32.78 f9gix7Cx.net
コメントありがとです。
Semigroupは半群、Monoidは単位元付きの半群ですよね。
言われてみると、<>に統一してmappendは消しても自然な気がする。
すごいHでログ文字列がmappendで追加されていく、サンプルを読んだことがあるので、Monoidは受け入れやすいんです。
Semigroupに単位元がないことは不思議に思わないです。半群というものを聞いたことがあったのと、
ログの例に戻ると、文字列なしのログはありえないと考えれば、単位元がないMonoidがあってもあまり不思議に思わないです。
言ってることが上と変わってきてるかもしれないですが、Applicativeが不思議に思うのは、ここに単位元?(というか単位元を生成する)pureがあること。
Applicativeの結合<*>って持ち上げられた型だけで構成されてます: f (a -> b) -> f a -> f b。
圏論何も知らないで言いますが、単位元pureは持ち上げられた型f aが自然な気がするんです。a -> f aではなく。
雰囲気でそう感じてるだけですが。
そんでもって、a -> f aが登場するのって、Monad.(>>=)だよなあってことで、だったら、returnがMonadにあるのは自然なんじゃないかな、と思うわけです。
そうすると、pureってなんのためにあるんだろう。同じ型ならMonadだけあるほうが自然だなと感じたわけです。
たぶんこれは圏論を知っていれば、変に思わないのかなと思って、そう言ったわけです。
推敲できてない感ありますが、伝わりますかね?
981:デフォルトの名無しさん
21/11/17 12:50:22.84 f9gix7Cx.net
ちなみに自分は、自分の価値観に反してるから却下すべきだと言ってるのではなくて、
どうしてこういう構造が正しいの?実際の理論やコードでの利用例に照らしてどんな利点や意味があるのと知りたいだけです。
982:デフォルトの名無しさん
21/11/17 15:59:19.97 oGkdvxh0.net
そもそもapplicativeなるものが数学の圏論的に何意味するかよくわからんのだよな
monadの方はwikiのmonad (category theory)の項があってキッチリ解説されてるし
URLリンク(en.m.wikipedia.org)(category_theory)
Tがcategory C上のmonadであるときfmap Tをμ。η_Tで定めればコレがfunctor C→Cを定義するのもわかるんだけど、applicativeについておんなじような解説が中々見当たらない
どっかでDescartes closed categoryがどうたらいうのを見た事あるんだけど誰か知りません?
983:デフォルトの名無しさん
21/11/17 16:59:55.76 fpCU2YNN.net
「アプリカティブ関手はモノイド圏における強laxモノイド関手だよ、何か問題でも?」
URLリンク(blog.miz-ar.info)
984:デフォルトの名無しさん
21/11/17 17:27:50.45 f9gix7Cx.net
>>971
多分これの概要部分は見てるんですよね。
URLリンク(en.m.wikipedia.org)
後ろの方はさておき、概要部分は自分はさっぱりでしたが。
985:デフォルトの名無しさん
21/11/30 20:23:52.94 SegqCGCa.net
haskell勉強しようかなって思ってるんですけどおすすめ書籍ってなにかありませんか?
ちなみにocamlでプログラム書いたことあります
型システム入門を原文で7割ほど読破しました
ちなみに大学受験の数学はそこそこ自信あります
一階述語論理の記号扱って解いていました
圏論の知識はありません
986:デフォルトの名無しさん
21/11/30 20:27:04.88 SegqCGCa.net
ちなみにモナドは日本語版wikipediaの記事を読んだのみです
型クラスはわかります
MaybeまではわかりましたがIOモナドで躓きました
ocamlとは違って参照型がない言語だってことは意外に思いました
987:デフォルトの名無しさん
21/12/02 00:19:03.82 c82IwjxK.net
(>>=)がただのデータコンストラクタだったらモナドはただの構文木なのに
data M b = Bind (M a) (a -> M b) | ...
みたいな定義ができない型システムだから
代数的データ型を使わないでラムダをたくさん使うことになってみんな躓く
988:デフォルトの名無しさん
21/12/02 13:13:42.19 kpMV/tat.net
そりゃそうやろ?
データコンストラクタと展開されるべき関数の違いをプログラマが指定しなければ処理系は与えられたexpressionをどこまで展開すべきか決定できんやろ?
989:デフォルトの名無しさん
21/12/02 14:49:59.14 ISSe07L0.net
>>974
Haskellを始める前に仕入れたそのような知識やOCamlの経験が、
Haskellの学習にいったいどんな影響を与えるのか、
楽にするのか、それとも邪魔にしかならないのか、正直まったく分からん。
Haskellで何をしたいのか、目的や目標も分からんし。
なので、Haskell入門者という観点だけで次の2点をすすめる。
さっと要点を学んで早くアプリを作り始めたいのなら、薄い入門書で十分。
「Learn You a Haskell for Great Good!」
が良いと思う。
ガッツリ学びたい、かつ、時間と根気があるのなら、
「Haskell Programming from first principles」
がおすすめ。
詳しくはどちらも公式サイトを参照して。
なにで学習するにしても、手や頭を動かす(プログラミングする)のが主で、
本やドキュメントを読むのは従であることを忘れずに。
990:デフォルトの名無しさん
21/12/02 17:56:37.45 35Q5ApkZ.net
>>978
すみません
関数型言語って敷居が高そうなイメージあってやるにはある程度数学の素養が求められるのかなって思っていろいろ自分なりの知識があるところ挙げてみました
特に型システム入門は型推論の理論とか分かっていたほうがいいのかなと思って読んでいました
まずはLearn youの方を読んで見ようと思います
ありがとうございました
991:デフォルトの名無しさん
21/12/02 20:33:40.95 c82IwjxK.net
>>977
ただし、IOモナドは「展開」できない方がいい
そうすれば処理系がexpressionをどれだけ「展開」しても副作用がない
992:デフォルトの名無しさん
21/12/14 12:11:46.65 78Ep1iUH.net
あの伝説の岡部健が復活!!
URLリンク(twitter.com)
(おまけ情報)
Quoraでも有名だった岡部健、2021年12月にTwitterのアカウントまたまた永久凍結される。
当時のアーカイブは多少ネットに残ってるらしい
URLリンク(twitter.com)
URLリンク(i.imgur.com)
(deleted an unsolicited ad)
993:デフォルトの名無しさん
21/12/14 12:13:53.75 l8dEnSpn.net
毛の壁から国民を守る党 72議席目
スレリンク(net板)
994:デフォルトの名無しさん
21/12/14 12:34:07.62 iFoIKYew.net
IQ145の人?
995:デフォルトの名無しさん
21/12/14 12:57:57.79 IE9oyXDX.net
>>983
よく覚えてるな
最近はkensmoothってアカウントを連番で取得して、ネトウヨムーブを連発してたんだけど全部凍結されて今のアカウントになってる
あのネトウヨ投稿はなんだったんだろう
996:デフォルトの名無しさん
21/12/14 17:15:27.20 Ad592Fxk.net
>>981
うわあ
997:デフォルトの名無しさん
21/12/14 17:39:35.08 iFoIKYew.net
>>981
なにこの一覧
998:デフォルトの名無しさん
21/12/14 18:35:50.33 SgMFGeMD.net
岡部健、Twitter再開してたのねw
Newbieとはご無沙汰してたから知らんかったわw
999:デフォルトの名無しさん
21/12/14 19:46:12.10 oL+i1N1M.net
ツイッター再開おめでとうございます!
来年はべーやんの年になる!
と良いですね!
1000:デフォルトの名無しさん
21/12/14 22:17:24.22 8Kmj5/YX.net
>>981
こはひどい
1001:デフォルトの名無しさん
21/12/14 22:19:44.63 3V9aUzHV.net
岡部の最近凍結されたアカウントのツイートみっけた
URLリンク(archive.ph)
1002:デフォルトの名無しさん
21/12/14 22:22:42.89 oL+i1N1M.net
べーやんは論客なんだな。
1003:デフォルトの名無しさん
21/12/14 22:38:20.35 sz+GbZW0.net
UCLAを卒業したという話は封印したみたいね
なぜ?
1004:デフォルトの名無しさん
21/12/14 22:53:00.93 oL+i1N1M.net
たまたまでは?
1005:デフォルトの名無しさん
21/12/14 23:06:41.51 dwtzMOq3.net
Quoraでいろいろ回答しているがモナドの解説は見事だぞ
1006:デフォルトの名無しさん
21/12/14 23:16:06.08 NLEjPnNU.net
こんな話で勢いづいてるんじゃないよ君ら
1007:デフォルトの名無しさん
21/12/14 23:42:04.31 iFoIKYew.net
>>994
ハラデイ
1008:デフォルトの名無しさん
21/12/15 00:16:47.05 Xb4w9/yA.net
「モナドについて学んでいるのですが、mapやflatMapは圏論ではどの概念にあたるのですか?」
具体的に例示していてわかりやすい。
1009:にしやま@大阪大学
21/12/15 07:25:32.70 /l12wr0Z.net
嘘つきケンちゃん、相変わらずですねww
久々にわたくしも腹筋がミシミシと鍛えられました
しばらくわたくしも加勢いたします
1010:デフォルトの名無しさん
21/12/15 08:55:33.56 fP8nqGj3.net
Hugs> take 10 fibs where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
[0,1,1,2,3,5,8,13,21,34]
GHCi
Prelude> take 10 fibs where fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
<interactive>:6:14: error: parse error on input ‘where’
言語仕様が微妙に異なる?
オレメモ、バッチファイル
stack ghci
を目的のディレクトリ下(例、e:\haskell)に作ってディスクトップにはバッチファイルへのリンクを作っておくと
ghci起動後カーソルが消えない
貴重なHaskellスレがもう過ぐ1000行く
1011:デフォルトの名無しさん
21/12/15 10:41:42.68 BDga5vqT.net
>>981
ぎゃっはっはっはっは
1012:デフォルトの名無しさん
21/12/16 08:29:00.48 kVJbCKwy.net
令和の時代に毛の壁ふたたび
1013:デフォルトの名無しさん
21/12/16 21:29:13.60 k4b05O9+.net
自分でキャラ演出してるだろ
1014:デフォルトの名無しさん
21/12/16 21:38:27.93 Y2CVy/MB.net
URLリンク(togetter.com)
ちょまど氏が首突っ込んでるけど、社名背負ってよくこんな書き込み出来るもんだと、驚いた。
1015:デフォルトの名無しさん
21/12/16 21:46:42.96 OBc86cw8.net
他の人も叩いているから便乗して死体蹴りしようか的な精神が見て取れる
1016:デフォルトの名無しさん
21/12/16 21:55:44.07 iDMhxZSI.net
>>1003
毛の壁氏、ですか、なつかしいですね
1017:デフォルトの名無しさん
21/12/16 21:55:47.51 Y2CVy/MB.net
それはマイクロソフト社の公式見解ですか?って突っ込み入れて欲しいわ。
1018:デフォルトの名無しさん
21/12/16 22:06:47.71 Y2CVy/MB.net
教祖だの洗脳だの言いがかりも甚だしいし、「学術的な真理ではないし」云々という自身の書き込みがそのままブーメランだと思うけど。
これを社名背負ってやるんだから頭おかしいわ。
1019:デフォルトの名無しさん
21/12/16 22:08:34.93 OBc86cw8.net
誰か次スレ立てろよ
1020:デフォルトの名無しさん
21/12/16 22:42:52.47 k4b05O9+.net
結局モナドってなんなのかわからんということにすべて起因してる希ガス
話題になってからもう二十年くらい立つのに結論でないし、数学者でもない限り一生わからんのだろうな
1021:デフォルトの名無しさん
21/12/17 13:01:29.30 NPioGyUL.net
新スレを立てました。当スレ(Part33)が埋まってからの利用をお願いします。
関数型プログラミング言語Haskell Part34
スレリンク(tech板)
1022:デフォルトの名無しさん
21/12/18 00:42:46.36 om0zr0Am.net
>>1009
結論だせる個人は存在するけど
組織になるとなぜか、結論だせない奴が代表者を気取ってるだけじゃん
1023:デフォルトの名無しさん
21/12/18 11:05:05.98 1fj0JYV9.net
>>1011
結論出せる個人て岡部氏のことっしょ?
そういう勢いでどうこうじゃなくって皆を納得させるような結論はないっていうこと
1024:デフォルトの名無しさん
21/12/18 11:23:52.39 9ehaErM5.net
納得が遅い
1025:デフォルトの名無しさん
21/12/20 09:52:36.40 ZumN5JOf.net
URLリンク(qiita.com)
コメント欄に毛の壁現る。
1026:デフォルトの名無しさん
21/12/20 09:52:54.51 ZumN5JOf.net
また誹謗中傷してるので通報よろ
1027:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 678日 15時間 35分 18秒
1028:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています