関数型プログラミング言語Haskell Part34 (667レス)
関数型プログラミング言語Haskell Part34 http://mevius.5ch.net/test/read.cgi/tech/1639713446/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
622: デフォルトの名無しさん [] 2024/12/08(日) 23:12:57.17 ID:G2o8fSXB おおむね10^-300前後(-400乗は無理だった)精度の任意精度少数。 定義済みの中ではPico(10^-12)までは定義されてる。 下の定義のE300/10^300/F300を書き換えれば任意精度の浮動小数型が作れる。 (F300がPicoとかNanoとかの型) ただし、pi/sin/sqrtなどの倍精度/単精度の浮動小数型用関数/定数が使えなくなるので四則演算を駆使して自作する必要がある。 import Data.Fixed data E300 instance HasResolution E300 where resolution _ = 10^300 type F300 = Fixed E300 http://mevius.5ch.net/test/read.cgi/tech/1639713446/622
623: デフォルトの名無しさん [sage] 2024/12/19(木) 15:03:02.64 ID:NXRHTsH0 add (x,y) (a,b) = (x+a,y+b) これをaddを定義せずにarrowで簡単にかく方法はありますか http://mevius.5ch.net/test/read.cgi/tech/1639713446/623
624: デフォルトの名無しさん [sage] 2024/12/19(木) 16:15:15.91 ID:hCGKCs/t arrowてなんすか http://mevius.5ch.net/test/read.cgi/tech/1639713446/624
625: デフォルトの名無しさん [sage] 2024/12/19(木) 19:27:09.72 ID:gIJYmlNm 富士通のスマホ http://mevius.5ch.net/test/read.cgi/tech/1639713446/625
626: デフォルトの名無しさん [] 2024/12/20(金) 01:32:43.30 ID:/9ZUXmih スマホでHaskellを簡単に書く方法はないかな http://mevius.5ch.net/test/read.cgi/tech/1639713446/626
627: デフォルトの名無しさん [sage] 2024/12/20(金) 02:01:04.72 ID:I9azuXSK >>626 今はキミの言うところの「簡単」ではない環境で書いてるってこと? http://mevius.5ch.net/test/read.cgi/tech/1639713446/627
628: デフォルトの名無しさん [] 2024/12/20(金) 02:04:07.41 ID:/9ZUXmih >>627 だまらっしゃい 俺がウザ絡みするのは良いけどアンタにレスつけてウザ絡みする権利はないんだよ 何故ならアンタは世界で一番価値のない存在だからね http://mevius.5ch.net/test/read.cgi/tech/1639713446/628
629: デフォルトの名無しさん [sage] 2024/12/20(金) 15:54:59.07 ID:IOWVZ3it スマホでHaskell書く必要ある? ないよね http://mevius.5ch.net/test/read.cgi/tech/1639713446/629
630: デフォルトの名無しさん [] 2024/12/20(金) 22:08:57.75 ID:uE9QxZQG >>626 iOSならRaskellってアプリあるけど、開発止まって大分経つので画面がずれたりする…。 ideoneとかpaiza.IOとかのクラウドサービスが今のところは一番手軽かもね。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/630
631: 警備員[Lv.1][新芽] [sage] 2025/01/08(水) 22:25:29.83 ID:lvne7rNk 初学者のため、言葉の定義があいまいな部分はご容赦ください IOモナドの純粋性についてですが(すでに言葉があやしい)、 実際に副作用が起こるのは、mainに束縛され実行されたり、ghciプロンプトからアクションを投入したときで アクションを生成するまでは同じ入力に対してはつねに同一のアクションを出力するという意味で純粋であるという理解でよいでしょうか(まだ実行前なので、副作用は生じていない) アクションを生成するまでが純粋 ただ、このときの純粋性の有り難みがさっぱり分からず… 純粋な関数が遅延評価などに有効なことや、副作用のある処理が >>= などで順序を拘束しなければならないことは分かるのですが http://mevius.5ch.net/test/read.cgi/tech/1639713446/631
632: デフォルトの名無しさん [sage] 2025/01/09(木) 20:13:21.93 ID:xwwTGWUu 評価が全部終わった後じゃないと参照透明性が保証されない。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/632
633: デフォルトの名無しさん [sage] 2025/01/09(木) 20:18:47.77 ID:xwwTGWUu 規制あったはずなんだけどなんか書き込めた。 アクションの生成が完了(コンパイルの終了)。この時点ではみんな純粋。 その後に、アクションの実行(プログラムの実行)が起こって入出力が出る。 アクションの生成時点まですべての関数が純粋関数だということは参照透明性が保証されるということで、ありがたみはその一点にあると思うが。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/633
634: デフォルトの名無しさん [sage] 2025/01/09(木) 21:49:19.20 ID:31eIYKLT 異教徒は汚染物として分離隔離する思想 http://mevius.5ch.net/test/read.cgi/tech/1639713446/634
635: 警備員[Lv.2][新芽] [sage] 2025/01/09(木) 22:58:50.93 ID:vav7Znkh >>632-633 ありがとうございます >>631 です あくアクションの生成までが純粋、でよいことを確認させていただきました でもこれって、Cだろうがアセンブラだろうが、(厳密には違うかもしれませんが)同じソースコードをコンパイル(アセンブリ)すれば同じオブジェクトファイルが生成されるのと何が違うのだろうかと >>634 にある分離隔離のような、何かこう、これまでとは違う何かがあるはず…と、浅知恵で考えるから訳が分からないのです… http://mevius.5ch.net/test/read.cgi/tech/1639713446/635
636: デフォルトの名無しさん [sage] 2025/01/09(木) 23:09:19.47 ID:2G6IUNoe >>634 おパンツ分解されたオペラッドのおパンツの中で脱糞してもズボンの裾のお股のどっち側からウンコが転げ出てくるのかわかんないだけかと思ってた。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/636
637: デフォルトの名無しさん [sage] 2025/01/09(木) 23:34:59.91 ID:xwwTGWUu >>635 >でもこれって、Cだろうがアセンブラだろうが、(厳密には違うかもしれませんが)同じソースコードをコンパイル(アセンブリ)すれば同じオブジェクトファイルが生成されるのと何が違うのだろうかと だから参照透明性の保証だって。オブジェクトファイルとしては状態変化とかしているけれど、元のHaskellコードとしては参照透明性は保たれている、そこがすごいということなんだし。 逆に普通のオブジェクトファイルと全く違うなんてことありうると思う?同じコンピュータ上で動くんだからオブジェクトファイルとしては変わらんだろ。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/637
638: 警備員[Lv.5][新芽] [sage] 2025/01/10(金) 09:27:26.71 ID:N8eMPB8m >>637 レスをありがとうございます 参照透過性の保証、ですね アクションを実行し、副作用が起こる前なので当然だ、という解釈は誤っているでしょうか まだ本の上の字面を追って学んでいるだけで圧倒的にコーティング量が足りない状態なので、これから経験を積むうちにいつかスッと腑に落ちるときがくるのかもしれません http://mevius.5ch.net/test/read.cgi/tech/1639713446/638
639: デフォルトの名無しさん [sage] 2025/01/10(金) 10:01:16.98 ID:xLB3XHZu 必要呼び評価戦略を採用するための前提として、すべての式の参照透過性が要求されるというだけでは http://mevius.5ch.net/test/read.cgi/tech/1639713446/639
640: デフォルトの名無しさん [sage] 2025/01/10(金) 18:54:00.90 ID:X+hiLHcK >>638 >アクションを実行し、副作用が起こる前なので当然だ、という解釈は誤っているでしょうか ?なんか混乱しているんじゃないか。 アクションの生成時点でのHaskellコードの参照透明性と、オブジェクトコード実行の際の参照の処理は別物だぞ。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/640
641: デフォルトの名無しさん [sage] 2025/01/10(金) 18:59:59.95 ID:X+hiLHcK 補足: Haskellコンパイルは少なくとも次の二つの段階を持つ 1.アクションの生成(入出力指示書の生成、Haskellコードの字面のコンパイル) 2.アクションの実行 1.のアクションの生成時に参照透明性がHaskellコードとして保証されている。 アクションの生成で必要な参照行為は全て終わっているので、2.では入出力だろうが破壊的操作だろうがやっても文句を言われない。 IOの機構がすごいのは1.アクションの生成計算で参照透明性が保証されているというところがうれしいところ、だという話。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/641
642: デフォルトの名無しさん [sage] 2025/01/10(金) 19:16:07.13 ID:NIbIyPdh 一度死んだら復活は有り得んので注意な http://mevius.5ch.net/test/read.cgi/tech/1639713446/642
643: 警備員[Lv.7][新芽] [sage] 2025/01/10(金) 19:39:05.74 ID:N8eMPB8m >>640-641 レスをありがとうございます そうですね 表現がいけませんでしたが、そのように理解しています あとひとつ伺いたいのが(アドバイスいただいたことがまだちゃんと理解できたわけではないのでアレですが)、 参照透明性が担保されているとは、(1.アクションを生成する時点までは)副作用がある処理は書くことができない、ということでしょうか http://mevius.5ch.net/test/read.cgi/tech/1639713446/643
644: 警備員[Lv.7][新芽] [sage] 2025/01/10(金) 19:48:40.81 ID:N8eMPB8m >>643 ですが、 このレスはちょっと意味が分かりませんね 実行前なので副作用は怒りようがありませんね http://mevius.5ch.net/test/read.cgi/tech/1639713446/644
645: デフォルトの名無しさん [sage] 2025/01/10(金) 20:01:13.00 ID:X+hiLHcK >>643-644 そのように理解しています。って本当に理解してるか? アクションの生成において生成しているのは入出力の指示書みたいなもので入出力自体はない。 こういう入力があったらこういう計算方法でこういう出力をするみたいな手順を生成しているだけ。 なんで参照透明性が担保されているというところでそんな引っかかるんだ? http://mevius.5ch.net/test/read.cgi/tech/1639713446/645
646: 警備員[Lv.7][新芽] [sage] 2025/01/10(金) 20:34:59.37 ID:0gelnbg2 >>643 で確認したかったことは次のようなことでした アクションを生成する段までは副作用なく、同一のプログラムを入力とすれば、かならず同一のアクションが出力されるか ということでした それはそうであるように思います http://mevius.5ch.net/test/read.cgi/tech/1639713446/646
647: デフォルトの名無しさん [sage] 2025/01/10(金) 20:42:16.47 ID:X+hiLHcK 同一のプログラムを入力とすればってどういう意味? 前も言ったようにアクションの生成とアクションの実行は別フェーズ。同一のアクションが出力される、というのはどっちのフェーズでのことを言ってんの? http://mevius.5ch.net/test/read.cgi/tech/1639713446/647
648: 警備員[Lv.8][新芽] [sage] 2025/01/10(金) 21:16:13.66 ID:0gelnbg2 アクションが出力される、なので 1.です http://mevius.5ch.net/test/read.cgi/tech/1639713446/648
649: デフォルトの名無しさん [sage] 2025/01/10(金) 21:34:10.26 ID:X+hiLHcK なんか理解しているのかすごい怪しいなぁ。 一応回答しておくと、アクションの生成のフェーズなら参照透明性を保証された純粋関数の計算でしかないから main文が同じなら当然同じアクションが生成される。 同じプログラムなら生成されるものも同じという意味で。 理解してたらこんな話出てこないと思うんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1639713446/649
650: 警備員[Lv.1][新芽] [sage] 2025/01/10(金) 22:49:49.12 ID:/2hXYNXu >>649 重ね重ね、ありがとうございます 理解できているかいなかについては、理解が浅いため、確認のために伺わせていただいています 伝わりづらくて申し訳ありませんでしたが、>>649の内容のような理解で正しいかを確認したかったというのが趣旨でした 簡潔に表現していただいて助かりました http://mevius.5ch.net/test/read.cgi/tech/1639713446/650
651: デフォルトの名無しさん [sage] 2025/01/13(月) 17:46:46.07 ID:uTEEqnKb あけなしておめでとうございます 去年は多様性がようやく否定され始めた年ですが、 今年はhaskellの純粋主義のやうに分類・隔離・排除躍進の年となるようがんばりましょう http://mevius.5ch.net/test/read.cgi/tech/1639713446/651
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 16 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s