関数型プログラミング言語Haskell Part34 (692レス)
上下前次1-新
130: デフォルトの名無しさん [sage] 2022/10/01(土) 19:53:52.72 ID:7gwAD0df(1) AAS
1番実用的な関数型言語やその影響が強い言語って何になるの?
131: デフォルトの名無しさん [sage] 2022/10/01(土) 20:00:27.14 ID:IQLzQmPp(1) AAS
Cじゃね
132: デフォルトの名無しさん [sage] 2022/10/01(土) 22:58:35.36 ID:76wmMtDf(1) AAS
標準規格を一番忠実に実装した奴が優勝みたいな考え方は全然数学的ではない
133: デフォルトの名無しさん [sage] 2022/10/03(月) 18:02:59.08 ID:LGdcguEE(1) AAS
lisp系やocamlとか。
134: デフォルトの名無しさん [sage] 2022/10/04(火) 08:48:04.42 ID:S20URLlI(1) AAS
ルールがない状態からルールが守られている状態へ誘導するか
何もしてないのに持続するルールを拾い集めるかの違い
135: デフォルトの名無しさん [] 2022/10/07(金) 20:15:05.17 ID:xpYSJYo6(1) AAS
F#では。
136: デフォルトの名無しさん [] 2022/10/07(金) 20:28:34.11 ID:lAeL408c(1) AAS
Erlang
137: デフォルトの名無しさん [sage] 2022/10/14(金) 22:28:23.68 ID:GVf4qcGD(1) AAS
ラムダや <- や case で束縛される変数の値は二回以上計算されない
seqは計算のタイミングを変える効果しかない
難しいのは = で定義される名前だが
= の右辺で頑張ってseqを使っても報われない
138(2): デフォルトの名無しさん [sage] 2022/10/14(金) 23:54:06.57 ID:91YiMGAd(1) AAS
でもhaskell 2010 reportには評価順を変える方法はseqしか規定されていない
GHQなどの実際の処理系でそれ以外のタイミングでメモ化されたりするのはあくまで処理系の独自仕様でしかない
ある処理系でメモ化されて早かったプログラムが別の処理系で同じ速度で処理してくれる保証などどこにもない
139: デフォルトの名無しさん [sage] 2022/10/15(土) 08:05:01.19 ID:/BlEbfcm(1/3) AAS
>>138
もしかして、個人の感想のようなものを悪と思ってるのかね
そして客観的事実 (ようするに絶対正しい事実) と称するものが正義だと
個人の感想を排除するべきという思想はどこにも規定されてないでしょ
140: デフォルトの名無しさん [sage] 2022/10/15(土) 09:49:59.76 ID:fUoifk8c(1/2) AAS
メモ化に関しては俺も>>138と同じような感想持ってるな
141: デフォルトの名無しさん [sage] 2022/10/15(土) 10:11:19.74 ID:/BlEbfcm(2/3) AAS
ある人の感想が別の人の感想と同じになる保証はどこにもない
保証がなくても特に問題ないと判明したならそれでいい
142(1): デフォルトの名無しさん [sage] 2022/10/15(土) 10:19:45.48 ID:+yYiQ+MP(1) AAS
一番嫌なのはネットに転がってるすごいスッキリしたプログラムがあって「おお、すげぇ」と思っても結局それはGHCのメモ化の恩恵でしかなくHaskell本来のそれではないので別の処理系では通用しないものであったりする事
事実上GHCが標準なのでGHCで早ければ「早いプログラムが書けない事はない」のではあるけど、じゃあGHCはどんな時は気をきかせてメモ化してくれるのか、どんな時はその事を利用して早い、しかし短い、わかりやすいプログラムを書けるのかはHaskell 2010 reportではなくGHCの方の仕様書を読むか、実験してみるかしかない、しかし前者はそもそもGHCの仕様書そのものどこにあるかわからないんだけど見つけてもおそらくメモ化の理論は相当に難しい論文レベルの話、さりとて実験で詰めていくのはデバッグと同じレベルのかなり苦痛な作業で、しかも完成したものは大概速さのために可読性をかなり犠牲にしないといけないものになる、当然可搬性も落ちてる
GHCがやってくれてる事全てでなくてもいいけどネットによく転がってるフィボナッチ数列とか素数生成とかのGHCの良きに計らってくれる機能を利用したスッキリした、けど早いプログラムくらいまでは標準化して全ての処理系で動くようにしてほしいけどね
143: デフォルトの名無しさん [sage] 2022/10/15(土) 11:46:05.26 ID:fUoifk8c(2/2) AAS
まあ実際のところメモ化を考え出したら
Lispと同じように可読性を犠牲にした速度重視のコードしか生まれないので・・
メモ化は考えないのが筋だけどそうすると実用性は皆無であってつまり
144: デフォルトの名無しさん [sage] 2022/10/15(土) 15:59:55.52 ID:/BlEbfcm(3/3) AAS
LispとHaskellの違いで重要なのは
モジュールの定義をインタラクティブにやらないこと
ghci起動時に全てのモジュールが定義され最後に
mainや他の式を評価・実行するところだけがインタラクティブ
そもそもmodule Main whereとかいうのは式ではない
式ではないから評価順序という考え方がそこでは通用しない
145: デフォルトの名無しさん [sage] 2022/11/03(木) 00:12:52.63 ID:A4mGU1Ql(1/2) AAS
GHCがデファクトだしこだわりがなければ他のコンパイラを使うこともないでしょ
とはいえ関数型言語って速度を重視するタスクには向かないでしょ
速さを求めるのが間違い
146: デフォルトの名無しさん [sage] 2022/11/03(木) 01:14:31.73 ID:+2fbLBnA(1) AAS
Symbolicsが失敗した事例を思い出す
あれも理想を追求したはいいけど何をやってもひたすら遅く
他社はそれより早く安い機材を次々と繰り出していた
当然惨敗は必然だった
147: デフォルトの名無しさん [sage] 2022/11/03(木) 06:02:33.84 ID:A4mGU1Ql(2/2) AAS
静的な型付けによる頑健性だとrustがあるしなぁ
148: デフォルトの名無しさん [sage] 2022/11/03(木) 11:53:42.15 ID:k32TY8HF(1) AAS
結局のところHaskellの言語策定をしてるコミュニティは学者さんのコミュニティで実用的な性能を向上させる事にそもそも興味ないから実務面での有用性を期待するのは無理やね
149: デフォルトの名無しさん [sage] 2022/11/04(金) 01:33:00.25 ID:ggdePY4U(1) AAS
まあそうだろうな
150: デフォルトの名無しさん [sage] 2022/11/05(土) 10:09:23.49 ID:nyx0vuE5(1) AAS
>>142 の指摘って他の言語のGCにもそのまま当てはまると思う。
151(1): デフォルトの名無しさん [] 2022/11/06(日) 14:53:18.67 ID:p6fV7yyc(1/2) AAS
Haskellで開発している会社ってどこがあるの?
検索するとHERPやTuruCapitalしか出てこない…
152: デフォルトの名無しさん [] 2022/11/06(日) 16:00:47.05 ID:8Hp8Ymz2(1) AAS
GHC9.4.3 リリース
153: デフォルトの名無しさん [sage] 2022/11/06(日) 16:35:55.22 ID:MgGeIf3l(1) AAS
Haskell wikiに載ってるやつ見るに、部分的にHaskellを使うって感じかなぁ
154: デフォルトの名無しさん [sage] 2022/11/06(日) 18:08:25.72 ID:SOHxH3HV(1) AAS
>>151
一時期富士通が募集してたことがあったような
もうないからやめたのだろうけど
上下前次1-新書関写板覧索設栞歴
あと 538 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s