トップページtech
1001コメント338KB

関数型プログラミング言語Haskell Part28 [転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2015/04/09(木) 08:31:01.42ID:4yjREsCN
関数型プログラミング言語 Haskell について語るスレです。

         ,.-―: ̄`ー::::::::::、
       /::::::::::::.::::::::::::::::::::::::::::`::、、
      /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
      l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l
      l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l
     l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l
     l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l
     ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/
    ヽ:::::    ̄ .)::;  l  ̄   l::::/    < 毛の壁(岡部健)の話は禁止な
     、:::::..   /:::; .,-、     l:::/、
    ,―::::::::  ゝヽ- ー' 、    l::/,、ヽ
     l,、,、,,:、:: / ,--、,-.、_ l    /::::::,、,、l
   l,、,、,、,、,、::、 `ー ̄-'   /:::::::::::,、,、l
   l,、,、,、,、,、,、::ヽ      /::::::::、,、,、,、,ノ:\

haskell.org (公式サイト)
http://www.haskell.org/

前スレ
関数型プログラミング言語Haskell Part27
http://peace.2ch.net/test/read.cgi/tech/1420718555/
0685デフォルトの名無しさん2015/06/28(日) 23:08:27.40ID:PermaxaH
宗教かよ
0686デフォルトの名無しさん2015/06/28(日) 23:24:45.18ID:CsAfdxFY
じゃあ、ここでEmacsとVimの雌雄を決しようぜ
0687デフォルトの名無しさん2015/06/29(月) 05:59:50.21ID:Qi5/2Z+9
Ocamler = 岡村
0688デフォルトの名無しさん2015/06/29(月) 06:43:23.70ID:brwnweVx
>>684
調査する側が答えを決めてるなら世論調査とかビッグデータとか無意味だな
0689デフォルトの名無しさん2015/06/29(月) 10:57:15.25ID:8+Jbzv8W
>>679
>型が違うとか批判ばかりで代案を出せないコンパイラと、そいつに逆らえないプログラマ
>全然すごくない

才能を感じるw
0690デフォルトの名無しさん2015/06/29(月) 20:28:54.62ID:UsldY24Z
おまえらえらそうにほざいてるけど、HaskellでGUIアプリ作れんの?
0691デフォルトの名無しさん2015/06/29(月) 20:34:47.53ID:I6LM+XSd
>>690
ほざいてないし作れない
0692デフォルトの名無しさん2015/06/29(月) 22:11:01.07ID:6j3t6Ku/
ほざいたし作った
0693デフォルトの名無しさん2015/06/29(月) 23:37:46.91ID:dOBb6but
今 Haskell で GUI アプリを作ることにどれほどの意味がある?
無駄に苦労するだけで、たいしたメリットは得られないと思うが。

C# や Java などの方が意図したことを素直に書けると思うぞ。
0694デフォルトの名無しさん2015/06/29(月) 23:43:17.21ID:8+Jbzv8W
>>690
作れるし作っているが楽しくはない。
0695デフォルトの名無しさん2015/06/29(月) 23:46:32.90ID:QGo7kC4a
GUI原理主義なんなの?
0696デフォルトの名無しさん2015/06/29(月) 23:56:20.64ID:NIwVXw8K
(Haste で javascript にコンパイルして)作ってる
0697デフォルトの名無しさん2015/06/30(火) 00:41:54.66ID:xJJVLGS/
>>695
EmacsとVimを懲らしめる主義(適当)
0698デフォルトの名無しさん2015/06/30(火) 01:13:42.18ID:Jhz+vTOP
Autocadは基本コマンド。
0699デフォルトの名無しさん2015/06/30(火) 07:58:21.93ID:c40dQzwL
>>693 状態のセーブがすげー簡単
苦労は特にない
0700デフォルトの名無しさん2015/06/30(火) 08:02:38.09ID:c40dQzwL
というかHaskellだろうが何だろうが
GUIなんかロジックの部分に比べれば簡単
0701デフォルトの名無しさん2015/06/30(火) 12:03:29.96ID:xY5YXWOJ
そうやって【自称関数型】のヤカラはいつも逃げる
GUIで使えるアプリも書けない
0702デフォルトの名無しさん2015/06/30(火) 12:19:59.61ID:avn7235t
Gtk2hsとか
0703デフォルトの名無しさん2015/06/30(火) 12:55:10.53ID:g8mVBFW2
いや普通にwxHaskellでもなんでも使って書けるから。
ただ抽象化が巧く嵌らないから楽しくないだけ。
0704デフォルトの名無しさん2015/06/30(火) 15:13:39.82ID:X6br0/jB
ウィンドウシステムで動く以上、オブジェクト指向が一番いいんじゃないの。
ウィンドウってオブジェクトそのものだし。
0705デフォルトの名無しさん2015/06/30(火) 17:14:12.45ID:vxf+DpiB
メッセージを受け取る関数 Message -> IO () で引数をパターンマッチすればいいよ
Cのswitch文を使うウィンドウシステムと同じ
0706デフォルトの名無しさん2015/06/30(火) 18:20:38.25ID:c40dQzwL
GUIどころかOSごとHaskellで書いた例:http://programatica.cs.pdx.edu/House/
0707デフォルトの名無しさん2015/06/30(火) 18:42:24.07ID:X6br0/jB
>>706
2chで作ってたOSにも及ばない感じに見える。

世界の一流研究者が集って10年かけて作ったものがこれでは、Haskellの
実力が低いように見える。
ドヤって感じで出されると余計。

少なくとも2chで作ってたOSは、もう少し実用性があった。
0708デフォルトの名無しさん2015/06/30(火) 18:51:10.78ID:X6br0/jB
昔、JSはCの二倍速いとか、JavaはCの20倍速いとか言われてて、ベンチマークが
2chのスレに貼り付けられてた。

今のHaskellは同じような感じがする。

JSは、アプリケーションを拡張するのに使えばとても楽な言語だし、Javaは
互換性やわかりやすさに焦点をあてた言語。
良い部分を宣伝したらいいと思うのだけど、どうも原理主義の人は欠点を
否定することに一生懸命になる。

Haskellはこういうことに向いてないね、でも出来ないわけじゃないよって
位で良いんじゃないのかな。
0709デフォルトの名無しさん2015/06/30(火) 19:02:56.27ID:c40dQzwL
>>706 言いたいことはわからなくもないが全然「一流研究者が集まって」ないからw
0710デフォルトの名無しさん2015/06/30(火) 19:04:08.01ID:c40dQzwL
>>707 のまちがいスマソ
0711デフォルトの名無しさん2015/06/30(火) 19:10:15.18ID:9foLA8yU
2chのOSってhigeponが作ってたmonaでしょ。目的が違うし、実用性も同程度だと思うが。
そういえばhigeponさんも関数型erになったが最近どうしてるんだろう
0712デフォルトの名無しさん2015/06/30(火) 19:55:09.60ID:FWhQ2ahg
Haskellが得意とする(向いている)アプリケーションとは何でしょうか。

また、なぜそれが他言語に比べてHaskellが有利だと言えるのでしょうか。
0713デフォルトの名無しさん2015/06/30(火) 20:01:42.67ID:g8mVBFW2
>>712
構造を持ったデータの処理・操作。
理由は人智を超えない範囲で充実した型システム。
0714デフォルトの名無しさん2015/06/30(火) 20:34:52.77ID:vxf+DpiB
リスクの高いアプリケーション
得意なことは何かではなく最悪のケースは何かを考えること

理由は型システム
0715デフォルトの名無しさん2015/06/30(火) 20:54:40.33ID:FWhQ2ahg
>>714
リスクというのは人命ですか?
もしかして医療関係のアプリケーションでよく使われていますか?
0716デフォルトの名無しさん2015/06/30(火) 21:54:36.59ID:vxf+DpiB
人命というのは何か違う気がする
単に死ぬことと意図的に殺すことを区別できなくなる
0717デフォルトの名無しさん2015/06/30(火) 21:57:27.47ID:X6br0/jB
F-35にHaskellが使われたなら信じる。
0718デフォルトの名無しさん2015/07/01(水) 00:19:00.28ID:hCLvX6t9
>>699
>> 状態のセーブがすげー簡単
これどういう意味? MonadIOの中だったらどこでもliftIO でファイル保存アクション実行できるよ、ってこと?
0719デフォルトの名無しさん2015/07/01(水) 08:39:27.15ID:tJW6CsdE
>>704←固定観念に囚われてる愚か者の事例。
0720デフォルトの名無しさん2015/07/01(水) 08:49:50.77ID:wl+QWyy/
ちょこっとかじった初心者ですが、
型システムのおかげでバグが出にくいっていう長所は
GUIアプリ作るときにも活かされますか?
0721デフォルトの名無しさん2015/07/01(水) 09:37:31.97ID:I91Dcp9K
>>720
Haskellつかったらバグが自動的に減るのではなく、
強力な型システムのお陰で、型レベルのバグがコンパイル時に
検出できるだけ。Cなんかではポインタへの誤ったキャストが
コンパイルを通ってしまい実行時(システムが稼働したとき)にようやく
発見されるという惨事が相次いだので、コンパイル時に前倒し
してエラーを補足できるという点が期待されていた。

現実には型が合っていても実装を間違うことはあるので、
Haskell使ったら「自動的に」高品質になるというのは完全嘘だと思ってる。
0722デフォルトの名無しさん2015/07/01(水) 10:28:08.57ID:tOajYpeJ
自分でHaskell書いたことのない奴が多すぎだろ
713くらいしかまともなこたえがない
0723デフォルトの名無しさん2015/07/01(水) 11:45:24.51ID:gMCljQ/I
>>720
GUIはコロコロ仕様が変わるので
むしろバグっぽいコードも書けるというメリットのほうが大きい
0724デフォルトの名無しさん2015/07/01(水) 11:45:40.65ID:zqTVEjze
型が強力なので、バグ以前に、適切な型を考えて、それに従って関数書けば
自然にプログラム書けて楽なことが多い。Type-directedプログラミングというか。
0725デフォルトの名無しさん2015/07/01(水) 11:48:56.78ID:zqTVEjze
>>718 いや単に状態が陽だから、何をセーブすれば良いかわかりやすい、というだけ。
まあGUIアプリに限った話ではないか。
0726デフォルトの名無しさん2015/07/01(水) 12:00:05.77ID:XEDFaQMZ
テスト駆動とかだったらテストをHaskellで書く筈だが
Type-directedはHaskellを書く機会を減らしてしまう諸刃の剣
0727デフォルトの名無しさん2015/07/01(水) 14:49:29.48ID:rMwDHu3x
Haskellで書けばバグが完全に駆逐できるという話をよく聞く。

Haskellは並列化が効率的に行えるのでC++の10倍速いと言う記事を見た。
0728デフォルトの名無しさん2015/07/01(水) 16:22:48.22ID:YQJkkFEW
リスクの最たる例が人命というなら、地球を一人の人間と捉えた場合、経済はその血流であろう。血流を止めると地球さんがヤバい
経済界に寄与するソフトウェアを他言語版より多く送り出しているならばHaskellはリスクと戦う最前線の言語だといえよう
0729デフォルトの名無しさん2015/07/01(水) 18:22:25.85ID:NjN/zNsy
で、おまえらGUIアプリ書けるのか?
Haskellでカットアンドペーストできるエディタやペイントソフト書けんの?
0730デフォルトの名無しさん2015/07/01(水) 18:22:57.88ID:NjN/zNsy
おまえらは「机上」でしか語れない
0731デフォルトの名無しさん2015/07/01(水) 18:35:28.08ID:wHMLdS0x
クリックカウンターおじさんのエミュレーションやめろ
0732デフォルトの名無しさん2015/07/01(水) 18:38:03.08ID:tOajYpeJ
GUIライブラリのコンポーネント使っていいなら誰にだって書ける。
もちろんHaskellでも問題なく書ける。エディタでバイト列収納しとくための
ロープから実装しろという話ならHaskellはかなり有利だ。
0733デフォルトの名無しさん2015/07/01(水) 19:31:24.61ID:W0dcBNHQ
>>730
確かに、机上の空論からのぶっつけ本番は非常に危険だ
しかし机上を危険視するのは間違っている
0734デフォルトの名無しさん2015/07/01(水) 19:53:03.17ID:XO0z7h0V
そもそも情報処理って机上がものいう世界だろ
0735デフォルトの名無しさん2015/07/01(水) 19:53:39.62ID:XO0z7h0V
クリックカウンターおじさん本人なんじゃないか?
0736デフォルトの名無しさん2015/07/01(水) 20:02:00.78ID:I91Dcp9K
机上の空論よりヘボくても動けるものを作れる奴が偉いとか典型的なマウンティング
0737デフォルトの名無しさん2015/07/01(水) 20:16:46.99ID:zqTVEjze
>>726 QuickCheck?
0738デフォルトの名無しさん2015/07/01(水) 20:18:47.95ID:zqTVEjze
>>727 それは嘘かhype
0739デフォルトの名無しさん2015/07/01(水) 20:25:01.06ID:N2f2t6hF
>>732
Haskellが凄いという話はよく聞くし、現代的なGUIエディタの実装に超有利という話も出てきた。

ところが、Haskellで書かれた著名なエディタは無いし、ライブラリやコンポーネントを使うなどと言うけど、
そのライブラリやコンポーネントはHaskellで書かれた著名なものがあるの?

極端な話、そんなに有利なら、Haskellで書かれたコンポーネントをそして
APIを他の言語から使ってるんじゃないの。
凄い凄いという話をよく聞くものの、最終的にC/C++で書かれたライブラリを
呼び出せますよって話になる。

C/C++を呼び出してて本当にHaskellの凄いところであるゼロバグを実現できるの?
言っとくけど、C/C++は容易にバグが紛れ込むし、Haskellのようにゼロバグなんてことは無いよ?
Haskellから呼び出すだけで、C/C++のバグも本当に消えるの?
0740デフォルトの名無しさん2015/07/01(水) 20:30:36.90ID:WaFLqKtq
ぐうの音もでん
0741デフォルトの名無しさん2015/07/01(水) 20:35:48.17ID:hkSyx5v6
C/C++ラッピングに頼るのは、国産OSを開発せずWindowsやUnixやLinuxに頼るようなものだ
Haskellネイティヴなライブラリへの置き換えが必要ではないか
0742デフォルトの名無しさん2015/07/01(水) 20:40:40.77ID:RlBRpOsX
>>739 誰もそんなこと言ってない。
どこかよそで読んだなら、まともな話かどうか判定するからソース教えて
0743デフォルトの名無しさん2015/07/01(水) 20:45:43.16ID:hhCpaelW
この世界、技術的に良いものが必ずしも広まらないことは日常茶飯事。
逆に、マイナーだから優れている、も成り立たないが。
0744デフォルトの名無しさん2015/07/01(水) 20:56:44.98ID:4S8xRTlr
>>739
Haskellで自動回避できるのは型の不整合にまつわるバグであって、算法上のバグを回避できるわけじゃあないよな
システム記述言語としてのHaskellは、他言語に比べて特に凄いということはないよ
動かしながらバグを取る必要があるのはC/C++と同じ
0745デフォルトの名無しさん2015/07/01(水) 20:59:56.29ID:WaFLqKtq
まあ、最近Facebookが出して世間を賑わしてるリアクティブプログラミングも元はHaskellで作られたやつだ。
あと、テストライブラリのQuickcheckも色んな言語に輸出されてるね。

思うんだけど、Haskellerのみんなの興味が、売れるアプリ、広く使われるソフト、
で必要とされるもんとズレてんじゃないかな。

1. その言語を使える技術者の確保が容易
2. ハード(スマホ)の最新機能がすぐ使える、
ドキュメントが豊富
0746デフォルトの名無しさん2015/07/01(水) 22:46:09.54ID:SBuzyDQs
ArrowがあればMonadは要らんのやな
最初からArrowにしとけばよかったやん
0747デフォルトの名無しさん2015/07/01(水) 22:54:31.49ID:hkSyx5v6
元はHaskellで作られたのに実践は他言語だったの?
Haskellは何か実践的開発上の問題を抱えてるの?
0748デフォルトの名無しさん2015/07/01(水) 23:08:08.48ID:1n3wggjU
つまんない煽り愛してないでまともな話しろ
0749デフォルトの名無しさん2015/07/01(水) 23:09:21.21ID:WaFLqKtq
>>747
もちろんHaskellのリアクティブライブラリもそれなりに使えるもんだったし、以降今に至るまで派生ライブラリがたくさん作られた。
でも、javascriptの方がより賑わっていて(開発者が多くて)Facebookにも資金力がとても高い、ってことさ。

つまり、Haskellの弱さは人がいないことだ、と俺は思う。
なぜ人がいないかは、理由は色々あるけど、外から見て何が得意なのかがよくわかんないつーのが大きくて、それはHaskellでの目に見える成果があんまり無いからで、その理由は人がいないからで、つまり
0750デフォルトの名無しさん2015/07/01(水) 23:32:51.19ID:W0dcBNHQ
>>747
逆に他言語で実践できない部分にガラパゴス化という問題があるとも言える
ガラパゴスが強いと思うか弱いと思うかは人それぞれ
0751デフォルトの名無しさん2015/07/01(水) 23:50:13.91ID:j1v8qj3k
つまりクリックカウンターおじさんの言ってることは正しい面もある、と?
0752デフォルトの名無しさん2015/07/02(木) 01:00:22.82ID:xB5xsyxT
言語仕様の話がしたいのか、ライブラリ群の話がしたいのか。
0753デフォルトの名無しさん2015/07/02(木) 01:43:36.68ID:0H4A+sBi
技術的内容を理解していない知ったかぶりの言葉遊びは無用。よそでやれ
0754デフォルトの名無しさん2015/07/02(木) 06:15:08.75ID:0QJ6vZJG
言葉遊びをやめさせるには沈黙するインセンティブが必要
黙秘権とか
逆に、対案を出せなど沈黙しないことが強く求められれば言葉遊びはもっと酷くなる
0755デフォルトの名無しさん2015/07/02(木) 09:19:10.46ID:RsQjnldo
”クリックカウンターおじさん”という名誉棄損の呼び名を確認。
0756デフォルトの名無しさん2015/07/02(木) 09:50:57.63ID:L8xarZNp
クリックカウンターのような状態遷移をHaskellでは作れないという批判?
0757デフォルトの名無しさん2015/07/02(木) 10:03:54.46ID:u7x11Nqb
クリックカウンターおじさんの問題提起については評価しないとだめだな。
0758デフォルトの名無しさん2015/07/02(木) 10:28:08.52ID:zhB7tSAg
環境構築(cabal)がクソでライブラリを探すのも入れるのも更新するのも面倒くさいってのも有ったんじゃない
Stackでどうなるか
0759デフォルトの名無しさん2015/07/02(木) 11:10:25.42ID:e+SQ5knv
著者が挙げている「クリックカウンター」や「お絵かき」の類を作成するのに特別なexpertiseは不要で、
単に使用するGUIライブラリ・グラフィックスライブラリのドキュメントが読めれば充分なので、
その趣旨は私にはまったく判然としません(当該の記事で著者がOCamlで「お絵かきロジック」を
実装してみせよと要求する一方で自身ではJavaScriptによるそれを公表していない点も気になります)。
もちろん、OCamlであれHaskellであれ破壊的代入の類の副作用を使用せずに書くのもなんら困難ではありません。
0760デフォルトの名無しさん2015/07/02(木) 13:57:23.04ID:y1SlVF6x
字数増やせば賢く見えるわけじゃないんですよ
0761仲本だいすけ2015/07/02(木) 15:06:12.36ID:ZQFEgiVc
あの疑似科学野郎を黙らせるのになぜ半年もかかったのか?
0762デフォルトの名無しさん2015/07/02(木) 17:11:55.72ID:L8xarZNp
>>758
環境のクソさのお陰でわりと布教しづらかったので stack にはマジ期待してる

>>759
なんら困難ではない。。。かなぁ???
0763デフォルトの名無しさん2015/07/02(木) 17:35:08.64ID:xB5xsyxT
破壊的代入なしで書くのは別に困難じゃないだろ。
入出力そのものを副作用だと言い出すならどんな言語でも無理だしな。
0764デフォルトの名無しさん2015/07/02(木) 17:46:38.81ID:FcRiDZyX
>>759
当事者ご降臨ですかw
確かに保身第一、全く相手にしてませんが何か?っていう答え方だな
0765デフォルトの名無しさん2015/07/02(木) 18:22:32.80ID:aW/wUO6R
>>761
おまえらの不徳の致すところ
0766デフォルトの名無しさん2015/07/02(木) 18:30:48.79ID:e+SQ5knv
おいおい、単に http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b からのコピペだぞ。検索もできんのか…
0767デフォルトの名無しさん2015/07/02(木) 18:55:57.21ID:y1SlVF6x
宣言型プログラミング言語スレで脳内設定エスパーしろとな
0768デフォルトの名無しさん2015/07/02(木) 19:00:17.41ID:xB5xsyxT
Ocamlアイドル ‏@no_maddo 24時間
追記部分があるのを知らなかった、めっちゃ面白かったです
関数型言語 - 『関数型プログラミングに目覚めた!』のレビュー(Day-1)
on @Qiita http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b


kenokabeさんの謎クリックカウンタとお絵かきのネタは仙台でも大人気だ!
0769デフォルトの名無しさん2015/07/02(木) 19:26:05.17ID:gqhA8KsA
これが何に使えるのかよくわからない。
0770デフォルトの名無しさん2015/07/02(木) 21:46:14.33ID:E90eWw9y
>>766-767
その程度のために Googleモナドを持ち出すなど軟弱な
0771仲本だいすけ2015/07/03(金) 01:48:03.52ID:RZmOyo0m
                  ,.-―: ̄`ー::::::::::、
                /::::::::::::.::::::::::::::::::::::::::::`::、、
               /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
               l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l
               l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l
              l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l
              l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l
              ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/
             ヽ:::::    ̄ .)::;  l  ̄   l::::/
              、:::::..   /:::; .,-、     l:::/、
               ::::::::  ゝヽ- ー' 、     l::/,
                ,:、:: / ,--、,-.、_ l     /
                 、::、 `ー ̄-'    /
                   、::ヽ      /:
                 r‐''''^¨^⌒ ̄ ̄ ̄ヽ
               ,ノ`,           \
              ノ/             ヽ
             ι.}           λ    )
             ヽ(,.          ノ!   r'
               (          l  .,/
              ノ,,,,,,,,,,,,,,,,,,,,,,,,,,,,丿へ
             ノ              ,)
             (  ∵ ∧∵    /,,丿
             \,,,,/人\__ノ   /
             (  ) (__)    (   )
            《  l (___)   《 ̄ ̄》
           《__(____)  《____》
0772デフォルトの名無しさん2015/07/03(金) 03:37:23.69ID:aag7hyI7
180°回る首
0773デフォルトの名無しさん2015/07/03(金) 08:29:08.65ID:8+5j5k8x
>>761
相手が弱者だと思って戦いを始めるやつは撤退する口実を作れないから泥沼化する

強敵ならいつでも撤退を正当化できるのに
0774デフォルトの名無しさん2015/07/03(金) 08:38:57.07ID:R0ApVOfB
>>763
入出力は副作用でしょ普通
入出力無しにGUIを描くと言ってるのと同じで矛盾してる
0775デフォルトの名無しさん2015/07/03(金) 08:39:40.10ID:uImfavx2
あほか
0776デフォルトの名無しさん2015/07/03(金) 08:41:04.32ID:wl7u/SNJ
>>774
意味論による。
0777デフォルトの名無しさん2015/07/03(金) 08:46:11.05ID:R0ApVOfB
>>776
言ってる事が理解できないので詳しく
入出力で参照透過性を維持できる説明もよろ
0778デフォルトの名無しさん2015/07/03(金) 09:04:39.28ID:wl7u/SNJ
>>777
IOモナドの仕組みくらい自分で調べたらよろしい。
そして、グラフ書換系のどこにも副作用なんかない。
0779デフォルトの名無しさん2015/07/03(金) 09:11:48.16ID:R0ApVOfB
>>778
グラフ書換系はGUIとは関係ないだろう
はぐらかさないで説明ヨロ
0780デフォルトの名無しさん2015/07/03(金) 09:15:30.38ID:wl7u/SNJ
>>779
IOモナドは世界状態RealWorldを取るStateモナドと同じ意味論を与えることができる。
Stateモナドに副作用がないのと同様にIOモナドはモナドにも副作用はない。これが1。
IO a を RealWorld -> (RealWorld, a) と元の形に直した上で
Haskellのグラフ書換系上で入出力がどう見えるか考えてみればいい。これが2。

これでわからんなら私のせいではない。
0781仲本だいすけ2015/07/03(金) 09:46:07.14ID:6Fdm7Fxt
疑似科学おじさんまだいるの?病院行こうよ
0782デフォルトの名無しさん2015/07/03(金) 09:57:24.37ID:p7lUbcZE
岡部氏の「もっと世界観を」には賛成。
しかし関数プログラミングやFRPは銀の弾ではないとも思う。
なぜこうも銀の弾が出てこないのか?
0783デフォルトの名無しさん2015/07/03(金) 10:02:29.75ID:Iifsm05F
そんな事より毛ブログがなんで更新されないのかな?
0784デフォルトの名無しさん2015/07/03(金) 10:17:59.41ID:R0ApVOfB
>>780
グラフ書換系からモナドがどう見えるかは関係ない
実際にIOモナドから値を取り出し、副作用を伴う処理を使う際
参照透過性を維持できるという説明をよろしく
■ このスレッドは過去ログ倉庫に格納されています