関数型プログラミング言語Haskell Part34 (689レス)
上下前次1-新
634(2): デフォルトの名無しさん [sage] 2025/01/09(木) 21:49:19.20 ID:31eIYKLT(1) AAS
異教徒は汚染物として分離隔離する思想
635(1): 警備員[Lv.2][新芽] [sage] 2025/01/09(木) 22:58:50.93 ID:vav7Znkh(1) AAS
>>632-633
ありがとうございます >>631631(1): 警備員[Lv.1][新芽] [sage] 2025/01/08(水) 22:25:29.83 ID:lvne7rNk(1) AAS
初学者のため、言葉の定義があいまいな部分はご容赦ください
IOモナドの純粋性についてですが(すでに言葉があやしい)、
実際に副作用が起こるのは、mainに束縛され実行されたり、ghciプロンプトからアクションを投入したときで
アクションを生成するまでは同じ入力に対してはつねに同一のアクションを出力するという意味で純粋であるという理解でよいでしょうか(まだ実行前なので、副作用は生じていない)
アクションを生成するまでが純粋
ただ、このときの純粋性の有り難みがさっぱり分からず…
純粋な関数が遅延評価などに有効なことや、副作用のある処理が >>= などで順序を拘束しなければならないことは分かるのですが
です
あくアクションの生成までが純粋、でよいことを確認させていただきました
でもこれって、Cだろうがアセンブラだろうが、(厳密には違うかもしれませんが)同じソースコードをコンパイル(アセンブリ)すれば同じオブジェクトファイルが生成されるのと何が違うのだろうかと
>>634 にある分離隔離のような、何かこう、これまでとは違う何かがあるはず…と、浅知恵で考えるから訳が分からないのです…
636: デフォルトの名無しさん [sage] 2025/01/09(木) 23:09:19.47 ID:2G6IUNoe(1) AAS
>>634
おパンツ分解されたオペラッドのおパンツの中で脱糞してもズボンの裾のお股のどっち側からウンコが転げ出てくるのかわかんないだけかと思ってた。
637(1): デフォルトの名無しさん [sage] 2025/01/09(木) 23:34:59.91 ID:xwwTGWUu(3/3) AAS
>>635
>でもこれって、Cだろうがアセンブラだろうが、(厳密には違うかもしれませんが)同じソースコードをコンパイル(アセンブリ)すれば同じオブジェクトファイルが生成されるのと何が違うのだろうかと
だから参照透明性の保証だって。オブジェクトファイルとしては状態変化とかしているけれど、元のHaskellコードとしては参照透明性は保たれている、そこがすごいということなんだし。
逆に普通のオブジェクトファイルと全く違うなんてことありうると思う?同じコンピュータ上で動くんだからオブジェクトファイルとしては変わらんだろ。
638(1): 警備員[Lv.5][新芽] [sage] 2025/01/10(金) 09:27:26.71 ID:N8eMPB8m(1/3) AAS
>>637
レスをありがとうございます
参照透過性の保証、ですね
アクションを実行し、副作用が起こる前なので当然だ、という解釈は誤っているでしょうか
まだ本の上の字面を追って学んでいるだけで圧倒的にコーティング量が足りない状態なので、これから経験を積むうちにいつかスッと腑に落ちるときがくるのかもしれません
639: デフォルトの名無しさん [sage] 2025/01/10(金) 10:01:16.98 ID:xLB3XHZu(1) AAS
必要呼び評価戦略を採用するための前提として、すべての式の参照透過性が要求されるというだけでは
640(1): デフォルトの名無しさん [sage] 2025/01/10(金) 18:54:00.90 ID:X+hiLHcK(1/5) AAS
>>638
>アクションを実行し、副作用が起こる前なので当然だ、という解釈は誤っているでしょうか
?なんか混乱しているんじゃないか。
アクションの生成時点でのHaskellコードの参照透明性と、オブジェクトコード実行の際の参照の処理は別物だぞ。
641(1): デフォルトの名無しさん [sage] 2025/01/10(金) 18:59:59.95 ID:X+hiLHcK(2/5) AAS
補足:
Haskellコンパイルは少なくとも次の二つの段階を持つ
1.アクションの生成(入出力指示書の生成、Haskellコードの字面のコンパイル)
2.アクションの実行
1.のアクションの生成時に参照透明性がHaskellコードとして保証されている。
アクションの生成で必要な参照行為は全て終わっているので、2.では入出力だろうが破壊的操作だろうがやっても文句を言われない。
IOの機構がすごいのは1.アクションの生成計算で参照透明性が保証されているというところがうれしいところ、だという話。
642: デフォルトの名無しさん [sage] 2025/01/10(金) 19:16:07.13 ID:NIbIyPdh(1) AAS
一度死んだら復活は有り得んので注意な
643(3): 警備員[Lv.7][新芽] [sage] 2025/01/10(金) 19:39:05.74 ID:N8eMPB8m(2/3) AAS
>>640-641
レスをありがとうございます
そうですね
表現がいけませんでしたが、そのように理解しています
あとひとつ伺いたいのが(アドバイスいただいたことがまだちゃんと理解できたわけではないのでアレですが)、
参照透明性が担保されているとは、(1.アクションを生成する時点までは)副作用がある処理は書くことができない、ということでしょうか
644(1): 警備員[Lv.7][新芽] [sage] 2025/01/10(金) 19:48:40.81 ID:N8eMPB8m(3/3) AAS
>>643 ですが、
このレスはちょっと意味が分かりませんね
実行前なので副作用は怒りようがありませんね
645: デフォルトの名無しさん [sage] 2025/01/10(金) 20:01:13.00 ID:X+hiLHcK(3/5) AAS
>>643-644
そのように理解しています。って本当に理解してるか?
アクションの生成において生成しているのは入出力の指示書みたいなもので入出力自体はない。
こういう入力があったらこういう計算方法でこういう出力をするみたいな手順を生成しているだけ。
なんで参照透明性が担保されているというところでそんな引っかかるんだ?
646: 警備員[Lv.7][新芽] [sage] 2025/01/10(金) 20:34:59.37 ID:0gelnbg2(1/2) AAS
>>643 で確認したかったことは次のようなことでした
アクションを生成する段までは副作用なく、同一のプログラムを入力とすれば、かならず同一のアクションが出力されるか
ということでした
それはそうであるように思います
647: デフォルトの名無しさん [sage] 2025/01/10(金) 20:42:16.47 ID:X+hiLHcK(4/5) AAS
同一のプログラムを入力とすればってどういう意味?
前も言ったようにアクションの生成とアクションの実行は別フェーズ。同一のアクションが出力される、というのはどっちのフェーズでのことを言ってんの?
648: 警備員[Lv.8][新芽] [sage] 2025/01/10(金) 21:16:13.66 ID:0gelnbg2(2/2) AAS
アクションが出力される、なので 1.です
649(1): デフォルトの名無しさん [sage] 2025/01/10(金) 21:34:10.26 ID:X+hiLHcK(5/5) AAS
なんか理解しているのかすごい怪しいなぁ。
一応回答しておくと、アクションの生成のフェーズなら参照透明性を保証された純粋関数の計算でしかないから
main文が同じなら当然同じアクションが生成される。
同じプログラムなら生成されるものも同じという意味で。
理解してたらこんな話出てこないと思うんだけど。
650: 警備員[Lv.1][新芽] [sage] 2025/01/10(金) 22:49:49.12 ID:/2hXYNXu(1) AAS
>>649
重ね重ね、ありがとうございます
理解できているかいなかについては、理解が浅いため、確認のために伺わせていただいています
伝わりづらくて申し訳ありませんでしたが、>>649の内容のような理解で正しいかを確認したかったというのが趣旨でした
簡潔に表現していただいて助かりました
651: デフォルトの名無しさん [sage] 2025/01/13(月) 17:46:46.07 ID:uTEEqnKb(1) AAS
あけなしておめでとうございます
去年は多様性がようやく否定され始めた年ですが、
今年はhaskellの純粋主義のやうに分類・隔離・排除躍進の年となるようがんばりましょう
652: デフォルトの名無しさん [sage] 2025/01/15(水) 00:44:26.65 ID:O9bWSOqU(1) AAS
マクロな現象には個々人のばらつきを否定する力はない
逆に個人は10回連続でグーを出してみてもたとえば「正規分布に従う」とかなんとかいう法則を反証できない
ミクロとマクロを隔離したのはただの統計学であって純粋でも主義でもない
653: デフォルトの名無しさん [sage] 2025/01/15(水) 05:29:17.90 ID:QElBeHY8(1) AAS
誰もいまミクロ・マクロの話なんてしてないぞ
654: デフォルトの名無しさん [sage] 2025/01/21(火) 22:22:46.92 ID:QQz8h7YM(1) AAS
雪田の英語版買って読んだ勇者はおらんか?
655: デフォルトの名無しさん [sage] 2025/01/22(水) 01:14:29.67 ID:SDQT/604(1) AAS
3万も出してよもうとは思わない。
目次読むとKleisli tripleの節はあるのにKleisli categoryの節がなかったり、なぜかその後にMoggi's theoryが出てきたりと
少なくとも構成があんまりいい感じはしない。
656: デフォルトの名無しさん [sage] 2025/01/22(水) 03:57:21.12 ID:ydcqGqD9(1) AAS
まぁ圏論はHaskellやるうえで無駄だしな
657: デフォルトの名無しさん [] 2025/01/23(木) 21:00:49.82 ID:j8NlocC3(1) AAS
しかもHaskell自体やるだけ無駄だしな
658: デフォルトの名無しさん [] 2025/02/13(木) 07:10:20.44 ID:NHs8kkcw(1) AAS
wikiでghc見たら、中の人MSリサーチにいるのな。
最近C#並みに速くなったと思ったら、そういう事か。
納得。
上下前次1-新書関写板覧索設栞歴
あと 31 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s