関数型プログラミング言語Haskell Part34 (667レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
82: デフォルトの名無しさん [] 2022/02/14(月) 11:54:21.19 ID:4AqyxcJv 最近数値計算の勉強してるんですけど、よく最近高速フーリエ変換を用いた乗算の高速化なんて話が出てきます サイズの大きい整数の掛け算とかを高速化する手法で桁数n同士の乗算のコストをn log(n)に抑えるのだとか これGHCのInteger型の乗算には応用されてますかね? やっぱりそこまで速さに拘りたいならご自分でのスタンス? GHCのソースが読めるほどのスキルはないのでよくわからない そもそもGHCのソースってどこに転がってます? http://mevius.5ch.net/test/read.cgi/tech/1639713446/82
110: デフォルトの名無しさん [sage] 2022/08/25(木) 11:20:55.19 ID:97f0Pf6Z ttps://hackage.haskell.org/package/mtl-2.3/docs/src/Control.Monad.Writer.Class.html#tell listen ~(w, a) = (w, (a, w)) この~はどういう文法なの? http://mevius.5ch.net/test/read.cgi/tech/1639713446/110
139: デフォルトの名無しさん [sage] 2022/10/15(土) 08:05:01.19 ID:/BlEbfcm >>138 もしかして、個人の感想のようなものを悪と思ってるのかね そして客観的事実 (ようするに絶対正しい事実) と称するものが正義だと 個人の感想を排除するべきという思想はどこにも規定されてないでしょ http://mevius.5ch.net/test/read.cgi/tech/1639713446/139
158: デフォルトの名無しさん [sage] 2022/11/07(月) 11:14:09.19 ID:uMWKgAVp オーバーヘッドを気にせず頑健性を取りたいとき うーん、具体例が出てこない http://mevius.5ch.net/test/read.cgi/tech/1639713446/158
227: デフォルトの名無しさん [sage] 2023/07/04(火) 00:24:50.19 ID:+0TfLuMN >>226 こういうやつですね data FiniteField = FF { val :: Int, modulus :: Int } deriving ( Show, Eq) instance Num FiniteField where x + y = FF ( mod ( ( val x ) + ( val y ) ) ( modulus x ) )( modulus x ) x * y = FF ( mod ( ( val x ) * ( val y ) ) ( modulus x ) )( modulus x ) fromInteger x = FF x 1 でもコレだと例えば x = FF 2 7 y = FF 4 7 x + y のような場合実行時にプログラムは値に格納されてるmodulusを読みに行ってから割り算行うという手間がかかります しかし私のやりたいプログラムではそもそも各変数のmodulusは確定していてそもそも読みに行くのはバカバカしい感じがします 実行時にxもyも𝔽₇の元と決まりきっててmod の第二引数はコンパイル時点で7と決まっているのにその7を読みに行く作業が無駄に思えるんです しかもコレは型ではなく値なので型チェックの恩恵も受けることができません プログラム中に出てくるmodilus事に全部F2型、F3型、F5型‥と全部作って全部のNum instance一個ずつ定義してとやればできるんでしょうけど、何が上手い逃げ道はないものかと http://mevius.5ch.net/test/read.cgi/tech/1639713446/227
400: デフォルトの名無しさん [sage] 2024/10/01(火) 23:21:35.19 ID:syLuNokt >>397 大文字小文字の変換が自然変換の部分kwsk >>399 目的と手段を区別したら、手段は二の次だと言うのは予選敗退者のポエム http://mevius.5ch.net/test/read.cgi/tech/1639713446/400
414: デフォルトの名無しさん [] 2024/10/02(水) 20:45:45.19 ID:AFS53MaU 可換図にすると Char(小文字) ⇗ Int ⇑toL ⇓toU ⇘ Char(大文字) ここで、小文字→Int, 大文字→Intが作れればtoLower, toUpperを直接作らなくても、関手の合成で作れる。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/414
453: デフォルトの名無しさん [sage] 2024/10/03(木) 20:45:47.19 ID:zyXzLypu ポエムすぎて意味わからん。値のリストはvalueじゃないと? http://mevius.5ch.net/test/read.cgi/tech/1639713446/453
465: デフォルトの名無しさん [] 2024/10/04(金) 07:22:19.19 ID:vLDssEdm >>464 そうなんだけど、結局普通のプログラミング言語を使ってる人にしてみれば屁理屈でしかない。 見た目そのままで伝えるなら、純粋関数型言語の定義のまんま、「副作用を伴っても参照透明性が保たれている」でいい。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/465
508: デフォルトの名無しさん [sage] 2024/10/04(金) 23:02:43.19 ID:6lZW+X9H 流石にこれじゃ関数型界隈の人達にボコボコにされて終わるね やめといた方がいい http://mevius.5ch.net/test/read.cgi/tech/1639713446/508
578: デフォルトの名無しさん [sage] 2024/10/30(水) 02:10:51.19 ID:p9nsrTZ/ 急に主語が大きくなったぞωωω=2πf http://mevius.5ch.net/test/read.cgi/tech/1639713446/578
592: デフォルトの名無しさん [] 2024/11/09(土) 18:32:16.19 ID:r4DlAvJp mylist.py TotalSeconds : 6.1246778 1:def mylist(n, m): 2: a = 1 3: outer = [] 4: for _ in range(0, n): 5: inner = [] 6: for _ in range(0, m): 7: inner.append(a) 8: a += 1 9: outer.append(inner) 10: return outer 11: 12:print(mylist(6000, 8000)[-1][-1]) 上と同じ動きのコードを書いたけど、 アルゴリズムとしてはPythonと同じmylist.hsのコードが良いはずなのに、 どっちも最適化するとmylist2.hsのが良好。 (ファイル名の横の秒数は実行時間) mylist.hs TotalSeconds : 4.107899 1:main = print.last.last $ mylist 6000 8000 2: 3:mylist n m = take n.f $ [1..] 4: where f ns = xs:f ys 5: where (xs, ys) = splitAt m ns mylist2.hs TotalSeconds : 2.3916408 1:main = print.last.last $ mylist 6000 8000 2: 3:mylist n m = take n.iterate f $ [1..m] 4: where f = map (+m) http://mevius.5ch.net/test/read.cgi/tech/1639713446/592
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s