関数型プログラミング言語Haskell Part34 (667レス)
上
下
前
次
1-
新
303
(1)
: 2024/07/26(金)05:41
ID:JmafwQnp(1/3)
AA×
>>302
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
303: [] 2024/07/26(金) 05:41:42.96 ID:JmafwQnp >>302 それはそうで、IOモナドは他の言語例えばC言語系列だとhoge();の";"部分を数学的に表現しただけだから。 見た目だけなら x = x + 1; printf("%d\n", x); を return (x + 1) >>= \x -> print x do形式に直して x <- return (x + 1) print x ただ、x <- の部分は同名の別の変数をシャドーイングしてるので、厳密にメモリの動作まで合わせるならIORefを使う。 Haskellから見たらメモリもIO処理(ファイル処理含む)も等しく外部への入出力という扱い。 だから、実用としては意味が無い。 一見複数行に見えるコードがその気になれば全部一行に出来るという感動はあるが、それだけだ。 Haskellを仲立ちにして数学とプログラミング言語の関係を研究したりには便利。 逆に自力でIOモナドをPythonなどの適当な言語で実装して全てのコードを関数っぽく書ける。 (Pythonだと演算子の自作が出来ないのでf = (>>=)みたいな事になる) Haskellは便利だから使うものじゃない。 美しいから使うものだ。 あ、でも腐っても最新版は実行速度が結構上がってる(C#/Java並み)ので、選択肢から外される理由も減ってきた気がする。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/303
それはそうでモナドは他の言語例えば言語系列だとの部分を数学的に表現しただけだから 見た目だけなら を 形式に直して ただ の部分は同名の別の変数をシャドーイングしてるので厳密にメモリの動作まで合わせるならを使う から見たらメモリも処理ファイル処理含むも等しく外部への入出力という扱い だから実用としては意味が無い 一見複数行に見えるコードがその気になれば全部一行に出来るという感動はあるがそれだけだ を仲立ちにして数学とプログラミング言語の関係を研究したりには便利 逆に自力でモナドをなどの適当な言語で実装して全てのコードを関数っぽく書ける だと演算子の自作が出来ないので みたいな事になる は便利だから使うものじゃない 美しいから使うものだ あでも腐っても最新版は実行速度が結構上がってる並みので選択肢から外される理由も減ってきた気がする
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 364 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.044s