関数型プログラミング言語Haskell Part34 (688レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
461
(1): デフォルトの名無しさん [sage] 2024/10/04(金) 05:52:21.21 ID:EogKDI3R(1/3) AAS
>>460
460(2): デフォルトの名無しさん [] 2024/10/04(金) 05:46:29.14 ID:vLDssEdm(1/9) AAS
>>428
Haskellの副作用については2つの解釈がある。
1.副作用も含めてアクションという単位で値としてみる。
(アクションを受け取って、アクションを返す関数)

2.Haskellは指示書を発行しているだけで、実際に実行するのは数学(Hakell)の外だから、Haskellそのものには副作用が無い。
((末尾にHaskellに値を返す形の)マシン語を返して、ハードウェアに実行してもらうと考えるアウトソーシング方式)
ようするに副作用はないってことじゃん
464
(1): デフォルトの名無しさん [sage] 2024/10/04(金) 06:24:04.70 ID:EogKDI3R(2/3) AAS
>>462
462(1): デフォルトの名無しさん [] 2024/10/04(金) 05:57:16.46 ID:vLDssEdm(2/9) AAS
>>461
Javaは変数をクラスの外で作れないから、グローバル変数は存在しない。
けど、事実上のグローバル変数は作れてしまう。

ってのと、同じ。
アクションの中に副作用があろうが、マシン語を返していると解釈しようが、事実として副作用はある。
ただ、重要なのは副作用を伴っても参照透明性が保たれているってこと。
それは例えばwhileプログラムから副作用のない言語に変換したあとの形式と同じ状態にすでになってるってことで、計算のルール上はもう副作用はないでしょ
466
(1): デフォルトの名無しさん [sage] 2024/10/04(金) 07:38:19.23 ID:EogKDI3R(3/3) AAS
>>465
465(1): デフォルトの名無しさん [] 2024/10/04(金) 07:22:19.19 ID:vLDssEdm(3/9) AAS
>>464
そうなんだけど、結局普通のプログラミング言語を使ってる人にしてみれば屁理屈でしかない。
見た目そのままで伝えるなら、純粋関数型言語の定義のまんま、「副作用を伴っても参照透明性が保たれている」でいい。
まあそのほうがいいか
上の方にいた彼はなんか脳内にこだわりがあって、普通の型付きラムダ計算以上のことをやってると思ってるフシがあったね
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s