関数型プログラミング言語Haskell Part28 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2015/04/09(木) 08:31:01.42ID:4yjREsCN,.-―: ̄`ー::::::::::、
/::::::::::::.::::::::::::::::::::::::::::`::、、
/::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
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:PermaxaH0686デフォルトの名無しさん
2015/06/28(日) 23:24:45.18ID:CsAfdxFY0687デフォルトの名無しさん
2015/06/29(月) 05:59:50.21ID:Qi5/2Z+90688デフォルトの名無しさん
2015/06/29(月) 06:43:23.70ID:brwnweVx調査する側が答えを決めてるなら世論調査とかビッグデータとか無意味だな
0689デフォルトの名無しさん
2015/06/29(月) 10:57:15.25ID:8+Jbzv8W>型が違うとか批判ばかりで代案を出せないコンパイラと、そいつに逆らえないプログラマ
>全然すごくない
才能を感じるw
0690デフォルトの名無しさん
2015/06/29(月) 20:28:54.62ID:UsldY24Z0691デフォルトの名無しさん
2015/06/29(月) 20:34:47.53ID:I6LM+XSdほざいてないし作れない
0692デフォルトの名無しさん
2015/06/29(月) 22:11:01.07ID:6j3t6Ku/0693デフォルトの名無しさん
2015/06/29(月) 23:37:46.91ID:dOBb6but無駄に苦労するだけで、たいしたメリットは得られないと思うが。
C# や Java などの方が意図したことを素直に書けると思うぞ。
0694デフォルトの名無しさん
2015/06/29(月) 23:43:17.21ID:8+Jbzv8W作れるし作っているが楽しくはない。
0695デフォルトの名無しさん
2015/06/29(月) 23:46:32.90ID:QGo7kC4a0696デフォルトの名無しさん
2015/06/29(月) 23:56:20.64ID:NIwVXw8K0697デフォルトの名無しさん
2015/06/30(火) 00:41:54.66ID:xJJVLGS/EmacsとVimを懲らしめる主義(適当)
0698デフォルトの名無しさん
2015/06/30(火) 01:13:42.18ID:Jhz+vTOP0699デフォルトの名無しさん
2015/06/30(火) 07:58:21.93ID:c40dQzwL苦労は特にない
0700デフォルトの名無しさん
2015/06/30(火) 08:02:38.09ID:c40dQzwLGUIなんかロジックの部分に比べれば簡単
0701デフォルトの名無しさん
2015/06/30(火) 12:03:29.96ID:xY5YXWOJGUIで使えるアプリも書けない
0702デフォルトの名無しさん
2015/06/30(火) 12:19:59.61ID:avn7235t0703デフォルトの名無しさん
2015/06/30(火) 12:55:10.53ID:g8mVBFW2ただ抽象化が巧く嵌らないから楽しくないだけ。
0704デフォルトの名無しさん
2015/06/30(火) 15:13:39.82ID:X6br0/jBウィンドウってオブジェクトそのものだし。
0705デフォルトの名無しさん
2015/06/30(火) 17:14:12.45ID:vxf+DpiBCのswitch文を使うウィンドウシステムと同じ
0706デフォルトの名無しさん
2015/06/30(火) 18:20:38.25ID:c40dQzwL0707デフォルトの名無しさん
2015/06/30(火) 18:42:24.07ID:X6br0/jB2chで作ってたOSにも及ばない感じに見える。
世界の一流研究者が集って10年かけて作ったものがこれでは、Haskellの
実力が低いように見える。
ドヤって感じで出されると余計。
少なくとも2chで作ってたOSは、もう少し実用性があった。
0708デフォルトの名無しさん
2015/06/30(火) 18:51:10.78ID:X6br0/jB2chのスレに貼り付けられてた。
今のHaskellは同じような感じがする。
JSは、アプリケーションを拡張するのに使えばとても楽な言語だし、Javaは
互換性やわかりやすさに焦点をあてた言語。
良い部分を宣伝したらいいと思うのだけど、どうも原理主義の人は欠点を
否定することに一生懸命になる。
Haskellはこういうことに向いてないね、でも出来ないわけじゃないよって
位で良いんじゃないのかな。
0709デフォルトの名無しさん
2015/06/30(火) 19:02:56.27ID:c40dQzwL0710デフォルトの名無しさん
2015/06/30(火) 19:04:08.01ID:c40dQzwL0711デフォルトの名無しさん
2015/06/30(火) 19:10:15.18ID:9foLA8yUそういえばhigeponさんも関数型erになったが最近どうしてるんだろう
0712デフォルトの名無しさん
2015/06/30(火) 19:55:09.60ID:FWhQ2ahgまた、なぜそれが他言語に比べてHaskellが有利だと言えるのでしょうか。
0713デフォルトの名無しさん
2015/06/30(火) 20:01:42.67ID:g8mVBFW2構造を持ったデータの処理・操作。
理由は人智を超えない範囲で充実した型システム。
0714デフォルトの名無しさん
2015/06/30(火) 20:34:52.77ID:vxf+DpiB得意なことは何かではなく最悪のケースは何かを考えること
理由は型システム
0715デフォルトの名無しさん
2015/06/30(火) 20:54:40.33ID:FWhQ2ahgリスクというのは人命ですか?
もしかして医療関係のアプリケーションでよく使われていますか?
0716デフォルトの名無しさん
2015/06/30(火) 21:54:36.59ID:vxf+DpiB単に死ぬことと意図的に殺すことを区別できなくなる
0717デフォルトの名無しさん
2015/06/30(火) 21:57:27.47ID:X6br0/jB0718デフォルトの名無しさん
2015/07/01(水) 00:19:00.28ID:hCLvX6t9>> 状態のセーブがすげー簡単
これどういう意味? MonadIOの中だったらどこでもliftIO でファイル保存アクション実行できるよ、ってこと?
0719デフォルトの名無しさん
2015/07/01(水) 08:39:27.15ID:tJW6CsdE0720デフォルトの名無しさん
2015/07/01(水) 08:49:50.77ID:wl+QWyy/型システムのおかげでバグが出にくいっていう長所は
GUIアプリ作るときにも活かされますか?
0721デフォルトの名無しさん
2015/07/01(水) 09:37:31.97ID:I91Dcp9KHaskellつかったらバグが自動的に減るのではなく、
強力な型システムのお陰で、型レベルのバグがコンパイル時に
検出できるだけ。Cなんかではポインタへの誤ったキャストが
コンパイルを通ってしまい実行時(システムが稼働したとき)にようやく
発見されるという惨事が相次いだので、コンパイル時に前倒し
してエラーを補足できるという点が期待されていた。
現実には型が合っていても実装を間違うことはあるので、
Haskell使ったら「自動的に」高品質になるというのは完全嘘だと思ってる。
0722デフォルトの名無しさん
2015/07/01(水) 10:28:08.57ID:tOajYpeJ713くらいしかまともなこたえがない
0723デフォルトの名無しさん
2015/07/01(水) 11:45:24.51ID:gMCljQ/IGUIはコロコロ仕様が変わるので
むしろバグっぽいコードも書けるというメリットのほうが大きい
0724デフォルトの名無しさん
2015/07/01(水) 11:45:40.65ID:zqTVEjze自然にプログラム書けて楽なことが多い。Type-directedプログラミングというか。
0725デフォルトの名無しさん
2015/07/01(水) 11:48:56.78ID:zqTVEjzeまあGUIアプリに限った話ではないか。
0726デフォルトの名無しさん
2015/07/01(水) 12:00:05.77ID:XEDFaQMZType-directedはHaskellを書く機会を減らしてしまう諸刃の剣
0727デフォルトの名無しさん
2015/07/01(水) 14:49:29.48ID:rMwDHu3xHaskellは並列化が効率的に行えるのでC++の10倍速いと言う記事を見た。
0728デフォルトの名無しさん
2015/07/01(水) 16:22:48.22ID:YQJkkFEW経済界に寄与するソフトウェアを他言語版より多く送り出しているならばHaskellはリスクと戦う最前線の言語だといえよう
0729デフォルトの名無しさん
2015/07/01(水) 18:22:25.85ID:NjN/zNsyHaskellでカットアンドペーストできるエディタやペイントソフト書けんの?
0730デフォルトの名無しさん
2015/07/01(水) 18:22:57.88ID:NjN/zNsy0731デフォルトの名無しさん
2015/07/01(水) 18:35:28.08ID:wHMLdS0x0732デフォルトの名無しさん
2015/07/01(水) 18:38:03.08ID:tOajYpeJもちろんHaskellでも問題なく書ける。エディタでバイト列収納しとくための
ロープから実装しろという話ならHaskellはかなり有利だ。
0733デフォルトの名無しさん
2015/07/01(水) 19:31:24.61ID:W0dcBNHQ確かに、机上の空論からのぶっつけ本番は非常に危険だ
しかし机上を危険視するのは間違っている
0734デフォルトの名無しさん
2015/07/01(水) 19:53:03.17ID:XO0z7h0V0735デフォルトの名無しさん
2015/07/01(水) 19:53:39.62ID:XO0z7h0V0736デフォルトの名無しさん
2015/07/01(水) 20:02:00.78ID:I91Dcp9K0737デフォルトの名無しさん
2015/07/01(水) 20:16:46.99ID:zqTVEjze0738デフォルトの名無しさん
2015/07/01(水) 20:18:47.95ID:zqTVEjze0739デフォルトの名無しさん
2015/07/01(水) 20:25:01.06ID:N2f2t6hFHaskellが凄いという話はよく聞くし、現代的なGUIエディタの実装に超有利という話も出てきた。
ところが、Haskellで書かれた著名なエディタは無いし、ライブラリやコンポーネントを使うなどと言うけど、
そのライブラリやコンポーネントはHaskellで書かれた著名なものがあるの?
極端な話、そんなに有利なら、Haskellで書かれたコンポーネントをそして
APIを他の言語から使ってるんじゃないの。
凄い凄いという話をよく聞くものの、最終的にC/C++で書かれたライブラリを
呼び出せますよって話になる。
C/C++を呼び出してて本当にHaskellの凄いところであるゼロバグを実現できるの?
言っとくけど、C/C++は容易にバグが紛れ込むし、Haskellのようにゼロバグなんてことは無いよ?
Haskellから呼び出すだけで、C/C++のバグも本当に消えるの?
0740デフォルトの名無しさん
2015/07/01(水) 20:30:36.90ID:WaFLqKtq0741デフォルトの名無しさん
2015/07/01(水) 20:35:48.17ID:hkSyx5v6Haskellネイティヴなライブラリへの置き換えが必要ではないか
0742デフォルトの名無しさん
2015/07/01(水) 20:40:40.77ID:RlBRpOsXどこかよそで読んだなら、まともな話かどうか判定するからソース教えて
0743デフォルトの名無しさん
2015/07/01(水) 20:45:43.16ID:hhCpaelW逆に、マイナーだから優れている、も成り立たないが。
0744デフォルトの名無しさん
2015/07/01(水) 20:56:44.98ID:4S8xRTlrHaskellで自動回避できるのは型の不整合にまつわるバグであって、算法上のバグを回避できるわけじゃあないよな
システム記述言語としてのHaskellは、他言語に比べて特に凄いということはないよ
動かしながらバグを取る必要があるのはC/C++と同じ
0745デフォルトの名無しさん
2015/07/01(水) 20:59:56.29ID:WaFLqKtqあと、テストライブラリのQuickcheckも色んな言語に輸出されてるね。
思うんだけど、Haskellerのみんなの興味が、売れるアプリ、広く使われるソフト、
で必要とされるもんとズレてんじゃないかな。
1. その言語を使える技術者の確保が容易
2. ハード(スマホ)の最新機能がすぐ使える、
ドキュメントが豊富
0746デフォルトの名無しさん
2015/07/01(水) 22:46:09.54ID:SBuzyDQs最初からArrowにしとけばよかったやん
0747デフォルトの名無しさん
2015/07/01(水) 22:54:31.49ID:hkSyx5v6Haskellは何か実践的開発上の問題を抱えてるの?
0748デフォルトの名無しさん
2015/07/01(水) 23:08:08.48ID:1n3wggjU0749デフォルトの名無しさん
2015/07/01(水) 23:09:21.21ID:WaFLqKtqもちろんHaskellのリアクティブライブラリもそれなりに使えるもんだったし、以降今に至るまで派生ライブラリがたくさん作られた。
でも、javascriptの方がより賑わっていて(開発者が多くて)Facebookにも資金力がとても高い、ってことさ。
つまり、Haskellの弱さは人がいないことだ、と俺は思う。
なぜ人がいないかは、理由は色々あるけど、外から見て何が得意なのかがよくわかんないつーのが大きくて、それはHaskellでの目に見える成果があんまり無いからで、その理由は人がいないからで、つまり
0750デフォルトの名無しさん
2015/07/01(水) 23:32:51.19ID:W0dcBNHQ逆に他言語で実践できない部分にガラパゴス化という問題があるとも言える
ガラパゴスが強いと思うか弱いと思うかは人それぞれ
0751デフォルトの名無しさん
2015/07/01(水) 23:50:13.91ID:j1v8qj3k0752デフォルトの名無しさん
2015/07/02(木) 01:00:22.82ID:xB5xsyxT0753デフォルトの名無しさん
2015/07/02(木) 01:43:36.68ID:0H4A+sBi0754デフォルトの名無しさん
2015/07/02(木) 06:15:08.75ID:0QJ6vZJG黙秘権とか
逆に、対案を出せなど沈黙しないことが強く求められれば言葉遊びはもっと酷くなる
0755デフォルトの名無しさん
2015/07/02(木) 09:19:10.46ID:RsQjnldo0756デフォルトの名無しさん
2015/07/02(木) 09:50:57.63ID:L8xarZNp0757デフォルトの名無しさん
2015/07/02(木) 10:03:54.46ID:u7x11Nqb0758デフォルトの名無しさん
2015/07/02(木) 10:28:08.52ID:zhB7tSAgStackでどうなるか
0759デフォルトの名無しさん
2015/07/02(木) 11:10:25.42ID:e+SQ5knv単に使用するGUIライブラリ・グラフィックスライブラリのドキュメントが読めれば充分なので、
その趣旨は私にはまったく判然としません(当該の記事で著者がOCamlで「お絵かきロジック」を
実装してみせよと要求する一方で自身ではJavaScriptによるそれを公表していない点も気になります)。
もちろん、OCamlであれHaskellであれ破壊的代入の類の副作用を使用せずに書くのもなんら困難ではありません。
0760デフォルトの名無しさん
2015/07/02(木) 13:57:23.04ID:y1SlVF6x0761仲本だいすけ
2015/07/02(木) 15:06:12.36ID:ZQFEgiVc0762デフォルトの名無しさん
2015/07/02(木) 17:11:55.72ID:L8xarZNp環境のクソさのお陰でわりと布教しづらかったので stack にはマジ期待してる
>>759
なんら困難ではない。。。かなぁ???
0763デフォルトの名無しさん
2015/07/02(木) 17:35:08.64ID:xB5xsyxT入出力そのものを副作用だと言い出すならどんな言語でも無理だしな。
0764デフォルトの名無しさん
2015/07/02(木) 17:46:38.81ID:FcRiDZyX当事者ご降臨ですかw
確かに保身第一、全く相手にしてませんが何か?っていう答え方だな
0765デフォルトの名無しさん
2015/07/02(木) 18:22:32.80ID:aW/wUO6Rおまえらの不徳の致すところ
0766デフォルトの名無しさん
2015/07/02(木) 18:30:48.79ID:e+SQ5knv0767デフォルトの名無しさん
2015/07/02(木) 18:55:57.21ID:y1SlVF6x0768デフォルトの名無しさん
2015/07/02(木) 19:00:17.41ID:xB5xsyxT追記部分があるのを知らなかった、めっちゃ面白かったです
関数型言語 - 『関数型プログラミングに目覚めた!』のレビュー(Day-1)
on @Qiita http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b …
kenokabeさんの謎クリックカウンタとお絵かきのネタは仙台でも大人気だ!
0769デフォルトの名無しさん
2015/07/02(木) 19:26:05.17ID:gqhA8KsA0770デフォルトの名無しさん
2015/07/02(木) 21:46:14.33ID:E90eWw9yその程度のために 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:aag7hyI70773デフォルトの名無しさん
2015/07/03(金) 08:29:08.65ID:8+5j5k8x相手が弱者だと思って戦いを始めるやつは撤退する口実を作れないから泥沼化する
強敵ならいつでも撤退を正当化できるのに
0774デフォルトの名無しさん
2015/07/03(金) 08:38:57.07ID:R0ApVOfB入出力は副作用でしょ普通
入出力無しにGUIを描くと言ってるのと同じで矛盾してる
0775デフォルトの名無しさん
2015/07/03(金) 08:39:40.10ID:uImfavx20776デフォルトの名無しさん
2015/07/03(金) 08:41:04.32ID:wl7u/SNJ意味論による。
0777デフォルトの名無しさん
2015/07/03(金) 08:46:11.05ID:R0ApVOfB言ってる事が理解できないので詳しく
入出力で参照透過性を維持できる説明もよろ
0778デフォルトの名無しさん
2015/07/03(金) 09:04:39.28ID:wl7u/SNJIOモナドの仕組みくらい自分で調べたらよろしい。
そして、グラフ書換系のどこにも副作用なんかない。
0779デフォルトの名無しさん
2015/07/03(金) 09:11:48.16ID:R0ApVOfBグラフ書換系はGUIとは関係ないだろう
はぐらかさないで説明ヨロ
0780デフォルトの名無しさん
2015/07/03(金) 09:15:30.38ID:wl7u/SNJIOモナドは世界状態RealWorldを取るStateモナドと同じ意味論を与えることができる。
Stateモナドに副作用がないのと同様にIOモナドはモナドにも副作用はない。これが1。
IO a を RealWorld -> (RealWorld, a) と元の形に直した上で
Haskellのグラフ書換系上で入出力がどう見えるか考えてみればいい。これが2。
これでわからんなら私のせいではない。
0781仲本だいすけ
2015/07/03(金) 09:46:07.14ID:6Fdm7Fxt0782デフォルトの名無しさん
2015/07/03(金) 09:57:24.37ID:p7lUbcZEしかし関数プログラミングやFRPは銀の弾ではないとも思う。
なぜこうも銀の弾が出てこないのか?
0783デフォルトの名無しさん
2015/07/03(金) 10:02:29.75ID:Iifsm05F0784デフォルトの名無しさん
2015/07/03(金) 10:17:59.41ID:R0ApVOfBグラフ書換系からモナドがどう見えるかは関係ない
実際にIOモナドから値を取り出し、副作用を伴う処理を使う際
参照透過性を維持できるという説明をよろしく
■ このスレッドは過去ログ倉庫に格納されています