関数型プログラミング言語Haskell Part34 (694レス)
上下前次1-新
81: 2022/02/13(日)02:50 ID:gJE3VDE6(1) AAS
GHC方言とかの知識が豊富な奴ってどちらかといえば反抗的な性格だと思う
それなのに、オリジナルの仕様への忠誠心が高ければ高いほど有能みたいな誤解がある
その上更にいかにも忠誠心なさそうなキャラまで作られてるし
82(2): 2022/02/14(月)11:54 ID:4AqyxcJv(1/4) AAS
最近数値計算の勉強してるんですけど、よく最近高速フーリエ変換を用いた乗算の高速化なんて話が出てきます
サイズの大きい整数の掛け算とかを高速化する手法で桁数n同士の乗算のコストをn log(n)に抑えるのだとか
これGHCのInteger型の乗算には応用されてますかね?
やっぱりそこまで速さに拘りたいならご自分でのスタンス?
GHCのソースが読めるほどのスキルはないのでよくわからない
そもそもGHCのソースってどこに転がってます?
83(1): 2022/02/14(月)20:10 ID:TSLH56nb(1) AAS
>>82
ghc haskell ソース でググれば見つかる
84: 2022/02/14(月)20:56 ID:uQiQyHca(1) AAS
ソースを1行も読まなくても分かることがいくつかある
IntとIntegerの二刀流ができるなら三刀流もできること
第二第三の型を追加するだけのためにコンパイラをコンパイルするのは無意味過ぎること
85: 2022/02/14(月)21:36 ID:4AqyxcJv(2/4) AAS
>>82
見つからないorz
>>83
ちょっと数値計算の練習したいんですよ
例えば円周率10万桁とか
さすがに10万桁とかだとghcはデフォルトでは対応してくれないのかなと
仮にできるにしても10万桁×10万桁の計算で桁数^2オーダーで計算したのではその一個の掛け算で何年もかかってしまうことになりかねません
省6
86: 2022/02/14(月)21:36 ID:4AqyxcJv(3/4) AAS
あら、アンカー一個ずれ
87(1): 2022/02/14(月)21:54 ID:BjFXlOcH(1) AAS
GMP使ってるかもしれないし使ってないかもしれないらしい[1]
GMP使ってるならFFTベースのSchonhage-Strassenが働くしGMP使いたいならライブラリ[2]がある
[1]外部リンク:stackoverflow.com
[2]外部リンク:hackage.haskell.org
88: 2022/02/14(月)23:13 ID:4AqyxcJv(4/4) AAS
>>87
おお、thx
なるほどGMPというのを使ってるんですね
--Stack excangeより
GMP appears to use Schonhage-Strassen, but not until you start dealing with numbers with 10s of thousands of decimal digits.
GMPではSchonhage-Strassenを使用しているようですが、小数点以下が何万桁もあるような数字を扱うようになるまでは、このようなことはないようです。
--wikiより
省11
89(1): 2022/02/15(火)00:40 ID:2crEr/EW(1) AAS
Haskellの多倍長計算、昔は大変だったけど今はよくなった、みたいな記事が10年前くらいに書かれてた
外部リンク[html]:tanakh.jp
90: 2022/02/15(火)19:39 ID:ujR6VeHM(1) AAS
>>89
おお、先人がいたww
いや〜Haskellって速さ求めるならあんまりいい選択肢ではなさそうですけどやっぱり挑戦してみたくなりますね
その人のページのリンク先がすごく参考になりました
ようやくChudnovskyの公式とかいうのがなんで最速なのかわかりました
収束速度そのものはどう考えてもAGMの方が早いのになんでChudnovskyの方が早いんだと
Binary Splittingという技使ってまとめて計算していく方法があるんですね
省3
91(1): 2022/03/28(月)00:29 ID:dN2icdd7(1) AAS
Haskell昔は日本でも人気あったのにどうしてこうなった
92(1): 2022/03/28(月)00:37 ID:NMG6YJEi(1) AAS
人気ないって事?
そりゃそうでしょ?
お世辞にも使いやすいとは言えない
93: 2022/03/28(月)17:03 ID:o+cr0I/L(1) AAS
>>92
使いにくいと感じるところを教えてください
94: 2022/03/28(月)18:04 ID:kSkV8rOb(1) AAS
文字列操作のパッケージを作っている。
1文字づつ評価して処理するのは出来るけど
ループで実現しようとすると、上手くいかない。
[Char]型とString型で混ぜて作ったせいか
ボトムアップ方式で作るのが間違えなのか。
まだまだ初心者の愚痴。
95: 2022/04/07(木)21:21 ID:v9cHeTKb(1) AAS
Stringは[Char]の別名だが
96: 2022/04/08(金)04:13 ID:ZfK1p/yR(1) AAS
Haskell-jp slackってどうなの?
97: 2022/04/08(金)13:18 ID:7u/c8YSR(1) AAS
とりあえず入ってみたら?
98: 2022/05/25(水)23:07 ID:HGLTMsh1(1/2) AAS
>>91
純粋関数型といいつつ実際にはそうではないし
結局はモナドも使わなきゃ実用的なものは作れない
よく例題に上がるようなシンプルな書き方すると遅いし
Lispでも同じようにあった問題で綺麗な書き方よりも早い書き方が重視される
そうこうしているうちにどんどん人は離れていったよ
理念が現実に負けたのだと思う・・
99: 2022/05/25(水)23:31 ID:HGLTMsh1(2/2) AAS
あとそうだ
なによりもデバッグがあまりに困難すぎるし
デバッグのために型制約とか何バカやってんだろな・・って思うことしばしば
作業環境が悪いのがまるで改善されないから嫌になる
100: 2022/05/27(金)23:36 ID:IybSybG6(1) AAS
型はコンパイル時にしか存在しない
モナドクラスもコンパイル時にしか使わない
実行時に使われているのはモナドのインスタンスのみ
そのインスタンスは任意の言語で再発明できる
どの言語でデバッグしても困難は同じ
結局は再発明をやらなきゃ実用的な知識が身につかない
101: 2022/05/27(金)23:58 ID:IeVDSTdQ(1) AAS
今だにprintfデバッグに頼ってるなんてHaskellくらいのものかもね・・
102: 2022/05/28(土)00:21 ID:1xwNIN3l(1) AAS
Cのライブラリに丸投げする効率化を考えれば
デバッグの効率化にはこだわらない方が丸投げしやすい
103: 2022/07/18(月)03:26 ID:zDzunRmU(1) AAS
なんでここまで人気なくなったんだろうな
104: 2022/07/18(月)14:14 ID:IRYfc5Qz(1) AAS
声の大きい人たちが使わなくなっただけでは
105: 2022/07/19(火)17:39 ID:6V/PH7AR(1) AAS
個人が言語を自作できるレベルになってる説
団体は必須ではない
106(1): 2022/08/07(日)20:06 ID:My+goEll(1) AAS
ハマりました
次のコード通らん理由が分からん
import Data.Ratio
[[ a,b],[c,d]] *** [[ p,q],[r,s]] = [ [ a*p+b*r, a*q+b*s], [c*p+d*r],[c*q+d*s]]
i [[ a,b],[c,d]] = [[d,-b],[-c,a]]
a :: [[Rational ]]
b:: [[Rational ]]
省15
107(1): 2022/08/08(月)19:26 ID:NwZYLTPj(1) AAS
>>106
リストの長さがマッチしてない
長さが2でないリストをどこで作ったのかはソースを読めば分かる
***は長さが3のリストを返す
108: 2022/08/09(火)10:46 ID:VUIfOlq+(1) AAS
>>107
あ、ホントだ
コピペミスかなんかか
thx
109: 2022/08/11(木)18:04 ID:9dSVJvSP(1) AAS
おまいらこのクソ暑い夏をどうにかするCOOLなコードをHaskellで簡潔に書けんのか?
110: 2022/08/25(木)11:20 ID:97f0Pf6Z(1) AAS
外部リンク[html]:hackage.haskell.org
listen ~(w, a) = (w, (a, w))
この~はどういう文法なの?
111: 2022/08/25(木)21:14 ID:+PRPT5FW(1) AAS
外部リンク[html]:www.sampou.org
112: 2022/08/25(木)21:15 ID:3SQ1xNiu(1) AAS
stack でwxHaskell インストールしようとしたんだが、
> stack install wxHaskell
とすると
Unknown package: wxhaskell
とでてインストールできない。
StackだとwxHaskellインストールできないの?んなわけないと思うんだが。
公式見てもstackの場合の方法が書いてない。
113: 2022/08/29(月)23:25 ID:mJ1Da6QY(1) AAS
stackage に入っていないからじゃないかな?
最近アップデートされていないし
並行処理も問題ありそうだし…
stack と GUI で検索したらこんな記事があった
外部リンク:www.stackbuilders.com
114: 2022/08/30(火)19:30 ID:XzDfLd3k(1) AAS
みんな中央集権クラウドに騙されてる
115: 2022/09/10(土)21:18 ID:Jyomj+F3(1) AAS
ボトルネックは事実上バグと変わらないから
結局パフォーマンスを考えると
Haskellはバグが混入しやすい言語と言える
しかも入出力は正しいから解決がクッソ厄介で実用性はない
116: 2022/09/10(土)23:20 ID:6vG8VA3K(1) AAS
ロマン思考言語_
117: 2022/09/11(日)00:14 ID:HO9VQuZG(1) AAS
まあ合ってるな
118: 2022/09/20(火)01:04 ID:zJWv8hkC(1) AAS
ghci --show-options | wc -l
Output: 1200
119: 2022/09/24(土)01:20 ID:v6+/ywPo(1/3) AAS
書き込んでいた専門家たちが書き込みをやめたので下火になっている感が出ているわけですね。
120: 2022/09/24(土)02:26 ID:vtJ0GRzX(1) AAS
イヤ、でも実際した火なんじゃない?
やっぱりHaskellで“性能”と“可読性”の両立を図るのはかなり難しい
やっぱり言語の生い立ちというか、性格というか、性能面、特に速度面の性能面はどうしても優先順位が低い、しかし実務上はもちろんそこは最重要factorだからそこがでないとした火になるのもやむを得ないかと
121: 2022/09/24(土)03:13 ID:v6+/ywPo(2/3) AAS
仕組みはわからんが計画的だろ。
言い換えると、騒ぐ奴らがうざいから騒がなくなるまで下火なんだろう。
122: 2022/09/24(土)03:21 ID:cIbikbIQ(1) AAS
てか元々世界のメジャーな言語に躍り出ようというつもりなんかHaskellコミュニティにはないのかもね
Haskellコミュニティなんて学者の集合体でしょ?
実務になんか元々興味ないんじゃない?
123: 2022/09/24(土)17:34 ID:v6+/ywPo(3/3) AAS
StackでGUIプログラミングしたいのですが、stackでインストールできるライブラリで
おすすめのものはありますか。
124: 2022/09/27(火)18:16 ID:2m9lsdvh(1) AAS
haskellで作ったチェスゲームありますか
コマとボードはきれいなグラフィックで
マウスでコマを動かすチェス
125: 2022/09/27(火)19:10 ID:rbvXlCo3(1) AAS
来年のRustがこの状態。
126: 2022/09/27(火)19:55 ID:CVmtKHy4(1) AAS
Haskellに飛びつく層は
Rustには飛びつかんよね
Rustには面白みが無い
127: 2022/09/27(火)20:30 ID:Ctbd02WQ(1) AAS
とにもかくにももう少しHaskellは速度性能を出すための方法の標準化について詰めてほしい
Haskell2010の文章のメモ化の部分の詰めがダメすぎる
実情のGHCとかで提供されてるものと差がありすぎて意味がわからん
GHCでの研究成果をもっと標準仕様に取り入れてほしい
何をどうやったら確実にドレコレはメモ化されるかハッキリ文書化してほしい
128: 2022/09/28(水)02:23 ID:4krAnsc6(1) AAS
整理する気がないからな
どんどんカオスになって行く
129: 2022/09/29(木)03:37 ID:IPtlf3/T(1) AAS
いまだにGHCというとGuarded Horn Clausesの方のGHCを先に思い出す
130: 2022/10/01(土)19:53 ID:7gwAD0df(1) AAS
1番実用的な関数型言語やその影響が強い言語って何になるの?
131: 2022/10/01(土)20:00 ID:IQLzQmPp(1) AAS
Cじゃね
132: 2022/10/01(土)22:58 ID:76wmMtDf(1) AAS
標準規格を一番忠実に実装した奴が優勝みたいな考え方は全然数学的ではない
133: 2022/10/03(月)18:02 ID:LGdcguEE(1) AAS
lisp系やocamlとか。
134: 2022/10/04(火)08:48 ID:S20URLlI(1) AAS
ルールがない状態からルールが守られている状態へ誘導するか
何もしてないのに持続するルールを拾い集めるかの違い
135: 2022/10/07(金)20:15 ID:xpYSJYo6(1) AAS
F#では。
136: 2022/10/07(金)20:28 ID:lAeL408c(1) AAS
Erlang
137: 2022/10/14(金)22:28 ID:GVf4qcGD(1) AAS
ラムダや <- や case で束縛される変数の値は二回以上計算されない
seqは計算のタイミングを変える効果しかない
難しいのは = で定義される名前だが
= の右辺で頑張ってseqを使っても報われない
138(2): 2022/10/14(金)23:54 ID:91YiMGAd(1) AAS
でもhaskell 2010 reportには評価順を変える方法はseqしか規定されていない
GHQなどの実際の処理系でそれ以外のタイミングでメモ化されたりするのはあくまで処理系の独自仕様でしかない
ある処理系でメモ化されて早かったプログラムが別の処理系で同じ速度で処理してくれる保証などどこにもない
139: 2022/10/15(土)08:05 ID:/BlEbfcm(1/3) AAS
>>138
もしかして、個人の感想のようなものを悪と思ってるのかね
そして客観的事実 (ようするに絶対正しい事実) と称するものが正義だと
個人の感想を排除するべきという思想はどこにも規定されてないでしょ
140: 2022/10/15(土)09:49 ID:fUoifk8c(1/2) AAS
メモ化に関しては俺も>>138と同じような感想持ってるな
141: 2022/10/15(土)10:11 ID:/BlEbfcm(2/3) AAS
ある人の感想が別の人の感想と同じになる保証はどこにもない
保証がなくても特に問題ないと判明したならそれでいい
142(1): 2022/10/15(土)10:19 ID:+yYiQ+MP(1) AAS
一番嫌なのはネットに転がってるすごいスッキリしたプログラムがあって「おお、すげぇ」と思っても結局それはGHCのメモ化の恩恵でしかなくHaskell本来のそれではないので別の処理系では通用しないものであったりする事
事実上GHCが標準なのでGHCで早ければ「早いプログラムが書けない事はない」のではあるけど、じゃあGHCはどんな時は気をきかせてメモ化してくれるのか、どんな時はその事を利用して早い、しかし短い、わかりやすいプログラムを書けるのかはHaskell 2010 reportではなくGHCの方の仕様書を読むか、実験してみるかしかない、しかし前者はそもそもGHCの仕様書そのものどこにあるかわからないんだけど見つけてもおそらくメモ化の理論は相当に難しい論文レベルの話、さりとて実験で詰めていくのはデバッグと同じレベルのかなり苦痛な作業で、しかも完成したものは大概速さのために可読性をかなり犠牲にしないといけないものになる、当然可搬性も落ちてる
GHCがやってくれてる事全てでなくてもいいけどネットによく転がってるフィボナッチ数列とか素数生成とかのGHCの良きに計らってくれる機能を利用したスッキリした、けど早いプログラムくらいまでは標準化して全ての処理系で動くようにしてほしいけどね
143: 2022/10/15(土)11:46 ID:fUoifk8c(2/2) AAS
まあ実際のところメモ化を考え出したら
Lispと同じように可読性を犠牲にした速度重視のコードしか生まれないので・・
メモ化は考えないのが筋だけどそうすると実用性は皆無であってつまり
144: 2022/10/15(土)15:59 ID:/BlEbfcm(3/3) AAS
LispとHaskellの違いで重要なのは
モジュールの定義をインタラクティブにやらないこと
ghci起動時に全てのモジュールが定義され最後に
mainや他の式を評価・実行するところだけがインタラクティブ
そもそもmodule Main whereとかいうのは式ではない
式ではないから評価順序という考え方がそこでは通用しない
145: 2022/11/03(木)00:12 ID:A4mGU1Ql(1/2) AAS
GHCがデファクトだしこだわりがなければ他のコンパイラを使うこともないでしょ
とはいえ関数型言語って速度を重視するタスクには向かないでしょ
速さを求めるのが間違い
146: 2022/11/03(木)01:14 ID:+2fbLBnA(1) AAS
Symbolicsが失敗した事例を思い出す
あれも理想を追求したはいいけど何をやってもひたすら遅く
他社はそれより早く安い機材を次々と繰り出していた
当然惨敗は必然だった
147: 2022/11/03(木)06:02 ID:A4mGU1Ql(2/2) AAS
静的な型付けによる頑健性だとrustがあるしなぁ
148: 2022/11/03(木)11:53 ID:k32TY8HF(1) AAS
結局のところHaskellの言語策定をしてるコミュニティは学者さんのコミュニティで実用的な性能を向上させる事にそもそも興味ないから実務面での有用性を期待するのは無理やね
149: 2022/11/04(金)01:33 ID:ggdePY4U(1) AAS
まあそうだろうな
150: 2022/11/05(土)10:09 ID:nyx0vuE5(1) AAS
>>142 の指摘って他の言語のGCにもそのまま当てはまると思う。
151(1): 2022/11/06(日)14:53 ID:p6fV7yyc(1/2) AAS
Haskellで開発している会社ってどこがあるの?
検索するとHERPやTuruCapitalしか出てこない…
152: 2022/11/06(日)16:00 ID:8Hp8Ymz2(1) AAS
GHC9.4.3 リリース
153: 2022/11/06(日)16:35 ID:MgGeIf3l(1) AAS
Haskell wikiに載ってるやつ見るに、部分的にHaskellを使うって感じかなぁ
154: 2022/11/06(日)18:08 ID:SOHxH3HV(1) AAS
>>151
一時期富士通が募集してたことがあったような
もうないからやめたのだろうけど
155: 2022/11/06(日)19:47 ID:p6fV7yyc(2/2) AAS
あと朝日ネットの募集要項はHaskellがありました
朝日ネットに応募してみようかなぁ。
HERPはリファレンスチェックが面倒…(上司とかと会話したくない)
156: 2022/11/07(月)00:00 ID:35GjxAYG(1) AAS
facebookも使ってた気がする。
157(1): 2022/11/07(月)00:41 ID:aVSF4vDw(1) AAS
Haskellの求人、あまり見つからないんですが、言語として微妙な感じなんでしょうか…?
HaskellでできることはPython、Java、Go、Scalaでできる、みたいな…
あえてHaskellを使う意味がない、みたいな…
158: 2022/11/07(月)11:14 ID:uMWKgAVp(1) AAS
オーバーヘッドを気にせず頑健性を取りたいとき
うーん、具体例が出てこない
159: 2022/11/07(月)12:17 ID:y2qdzeiV(1/2) AAS
>>157
> Haskellの求人、あまり見つからないんですが、言語として微妙な感じなんでしょうか…?
> HaskellでできることはPython、Java、Go、Scalaでできる、みたいな…
> あえてHaskellを使う意味がない、みたいな…
かきか
160: 2022/11/07(月)12:18 ID:y2qdzeiV(2/2) AAS
誤操作スマソ
161: 2022/11/08(火)09:36 ID:VjMrXhSs(1) AAS
消費者目線ではGHCはフリーソフトだからコストが高いとは言えない
コストという物差しが万能ではない具体例がいま出た
上下前次1-新書関写板覧索設栞歴
あと 533 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s