[過去ログ]
関数型プログラミング言語Haskell Part16 (978レス)
関数型プログラミング言語Haskell Part16 http://echo.5ch.net/test/read.cgi/tech/1317958045/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
469: デフォルトの名無しさん [sage] 2011/11/11(金) 08:49:33.54 Data.Arrayってそういうのじゃないの?使ったことないけど。 http://echo.5ch.net/test/read.cgi/tech/1317958045/469
470: デフォルトの名無しさん [sage] 2011/11/12(土) 01:01:56.40 reactive-glutを試そうとしたら依存パッケージのcategory-extrasがインストールできなかった。 out of dateなパッケージかどうかすぐに分かる手段ってあるのかな。 http://echo.5ch.net/test/read.cgi/tech/1317958045/470
471: デフォルトの名無しさん [sage] 2011/11/12(土) 08:11:04.13 ListはもうEducationalモジュールに引っ越せ http://echo.5ch.net/test/read.cgi/tech/1317958045/471
472: デフォルトの名無しさん [sage] 2011/11/12(土) 12:18:07.24 >>471 引っ越したとして、代わりに何を標準ライブラリに入れるの? 今までの List と互換が無ければ今まで作ってきた資産が死ぬし、 さもなければ互換性を捨ててでも入れる大きなメリットがあるものじゃないと http://echo.5ch.net/test/read.cgi/tech/1317958045/472
473: デフォルトの名無しさん [sage] 2011/11/12(土) 15:32:33.20 haskellはrubyと比べてダメな言語。 http://d.hatena.ne.jp/mizon9/20111112/1321046483 http://echo.5ch.net/test/read.cgi/tech/1317958045/473
474: デフォルトの名無しさん [sage] 2011/11/12(土) 15:49:26.84 >>473 こういう総合的使い勝手に関して 関数型言語は時の洗礼を十分に勝ち抜いてはいないと思う 当面C#からF#を操作すればいいと思うしまだまだ本格使用はしない http://echo.5ch.net/test/read.cgi/tech/1317958045/474
475: デフォルトの名無しさん [sage] 2011/11/12(土) 15:49:41.43 >>473 そこで挙げられてる事に関しては俺もそうだと思う。 回避策はあるにはあるけど、いつも使える訳じゃないし。 http://echo.5ch.net/test/read.cgi/tech/1317958045/475
476: デフォルトの名無しさん [sage] 2011/11/12(土) 15:57:09.17 >>473 名前空間の問題はasでimportすれば解決するんじゃ? module が抽象化の単位だから module毎に名前空間を設定できればいいわけだし 操作とデータ型の分離はいわゆるexpression problemによくあるトレードオフそのもので どっちがいいとかじゃないと思う 分離してmoduleで管理でいいと思うけど class前提の人には受け付けないのか http://echo.5ch.net/test/read.cgi/tech/1317958045/476
477: デフォルトの名無しさん [sage] 2011/11/12(土) 15:59:22.58 >>473 SMLならモジュールで名前空間を実現しているから uri.schemeやuri.pathみたいに書けて、Rubyと遜色ない Haskellって大規模開発には適していないのかな? http://echo.5ch.net/test/read.cgi/tech/1317958045/477
478: デフォルトの名無しさん [sage] 2011/11/12(土) 16:07:36.78 Haskellわかってないやつが批判してるってのは理解できた http://echo.5ch.net/test/read.cgi/tech/1317958045/478
479: デフォルトの名無しさん [sage] 2011/11/12(土) 16:19:42.77 名前についてHaskellよりRubyの方がうまくやってるのはその通りだな qualifiedでインポートしても結局修飾しなきゃいけなくて、.fooで済むオブジェクト指向言語には負ける それ以外の点は的外れだと思った 関数の部分適用とsetterはまるで別物だし、パターンマッチはかっこいいifじゃないし、 高階関数の「固まり」を苦労して扱わなくて済むのはそれだけで利点だし http://echo.5ch.net/test/read.cgi/tech/1317958045/479
480: デフォルトの名無しさん [sage] 2011/11/12(土) 16:23:39.76 >>477 そのuri.schemeのuriってモジュール名?そうならRubyと遜色ないとは言えないだろ Ruby(や他のオブジェクト指向言語)はモジュールで修飾する必要がないのが自慢なんだから http://echo.5ch.net/test/read.cgi/tech/1317958045/480
481: デフォルトの名無しさん [sage] 2011/11/12(土) 16:24:46.65 >>477 バイナリ互換性が糞だからな それが一番大問題だと思う 名前空間は一長一短だろ、エディタでの補完考えるとhaskellみたいに関数名で完結してたほうが良い http://echo.5ch.net/test/read.cgi/tech/1317958045/481
482: デフォルトの名無しさん [sage] 2011/11/12(土) 16:27:49.15 補完は静的であれば何でもいけるんじゃないかと http://echo.5ch.net/test/read.cgi/tech/1317958045/482
483: デフォルトの名無しさん [sage] 2011/11/12(土) 16:28:53.90 http://hackage.haskell.org/trac/haskell-prime/wiki/TypeDirectedNameResolution これがあれば短い名前を使って衝突しても解決してくれるという触れ込みだけどどうなんだろう 個人的には曖昧エラーの山になりそうだと思うんだが SPJは使いものになると考えてるらしい http://echo.5ch.net/test/read.cgi/tech/1317958045/483
484: デフォルトの名無しさん [sage] 2011/11/12(土) 17:07:16.80 >>480 SMLなら、open uri と宣言すれば、Rubyと同じように修飾を省略できるよ Haskellはできないの? http://echo.5ch.net/test/read.cgi/tech/1317958045/484
485: デフォルトの名無しさん [sage] 2011/11/12(土) 17:09:09.99 >>481 >名前空間は一長一短だろ、エディタでの補完考えるとhaskellみたいに関数名で完結してたほうが良い まるでイソップ童話の「酸っぱいブドウ」みたいだ.... http://echo.5ch.net/test/read.cgi/tech/1317958045/485
486: デフォルトの名無しさん [sage] 2011/11/12(土) 17:11:25.72 >>484 できるけど、名前が衝突しない場合に限る。これはSMLも同じだよな? Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、けっきょく修飾インポートするはめになる Rubyだとメソッド名はグローバルじゃないので衝突を気にする必要すらない http://echo.5ch.net/test/read.cgi/tech/1317958045/486
487: デフォルトの名無しさん [sage] 2011/11/12(土) 17:16:42.29 >>486 >これはSMLも同じだよな? いや、ゼンゼン(理由は下記を参照) >Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、 ナゼこんなことが起きるの? SMLなら名前空間は(Rubyと同じように)階層化されているから、 適切にモジュール設計していれば、衝突なんて全く気にならないんだけど.... もしかしてHaskellの(モジュールに関する)名前空間というのは フラット(平坦)なの? http://echo.5ch.net/test/read.cgi/tech/1317958045/487
488: デフォルトの名無しさん [sage] 2011/11/12(土) 17:21:06.02 >>485 >>481は関数名しか補完してくれないテキストエディタしか使ったことが無いのかもしれない。 型を認識するIDEを使ったことがあれば、こんな発想にはならないだろ。 http://echo.5ch.net/test/read.cgi/tech/1317958045/488
489: デフォルトの名無しさん [sage] 2011/11/12(土) 17:23:06.27 >>487 Haskellの名前空間はフラットだよ 階層化されているから名前が衝突しないってのが良く分からん 実例かポインタある? >SMLなら名前空間は(Rubyと同じように)階層化されているから、 Rubyで衝突を気にしなくていいのはメソッド名の解決に型情報を使う (正確にはレシーバがメソッド名を実行時に解釈する)からであって、 階層化うんぬんは関係なくね? http://echo.5ch.net/test/read.cgi/tech/1317958045/489
490: デフォルトの名無しさん [sage] 2011/11/12(土) 17:25:14.72 >>487 > もしかしてHaskellの(モジュールに関する)名前空間というのは > フラット(平坦)なの? どういうのをフラットと言うのか分からんが、 俺が Haskell のモジュール関係で不満なのは次のことができない事 AAA.BBB.CCC.DDD というモジュールがあったとして、 モジュール AAA.BBB をインポートして CCC.DDD.fff で関数 fff を使う事 関数 fff を使いたかったらモジュール AAA.BBB.CCC.DDD をインポートしないといけない http://echo.5ch.net/test/read.cgi/tech/1317958045/490
491: デフォルトの名無しさん [] 2011/11/12(土) 17:36:29.05 すいません、Haskell初心者で オライリーのプログラミング言語Haskellを買ってきたのです プログラムをかきながら本を進めていくと 後半からimportできないモジュールばかりになるのですが… 環境はWindowsでGHC6.4.1ですが、CentOSでGHC6.10.4でもダメなので 単純に環境問題ではない気がするのですが… http://echo.5ch.net/test/read.cgi/tech/1317958045/491
492: デフォルトの名無しさん [sage] 2011/11/12(土) 17:42:05.24 >>489 >実例かポインタある? 階層化されたディレクトリの無いファイルシステム(CP/Mや初期のMS-DOS) 過去の階層化されていないWindows Network(NetBIOS) 名前の衝突回避と階層化との関連はコンピュータ科学の知識があれば常識だよ >階層化うんぬんは関係なくね? Rubyのインスタンスメソッドについては、その通りだね。 ただし、Rubyにはクラスメソッドあるいはモジュール関数という概念がある。 これらのメソッドは(実際の実行は動的であっても、)構文上は静的に解釈できる。 ここで、M::N::O.func と M::N.func は同じモジュール関数名 func を使っているけど、 それぞれ名前空間が M::N::O と M::N とで異なっているから静的に区別できる。 http://echo.5ch.net/test/read.cgi/tech/1317958045/492
493: デフォルトの名無しさん [sage] 2011/11/12(土) 17:49:31.51 >>492 いやプログラミングの文脈ではぜんぜん常識じゃないと思うんだが あるモジュールMを書いているとする 別のモジュールA.B.Cの関数fと、A.D.Eの関数fを使いたくなったので、両方ともインポートする すると、単にfと書くだけではどちらを意味しているか決まらないので、なんらかの修飾が必要になる これは名前空間が階層化されていようがいまいが関係ない という理解だけど http://echo.5ch.net/test/read.cgi/tech/1317958045/493
494: デフォルトの名無しさん [sage] 2011/11/12(土) 17:52:01.51 >>485,488 たしかに変なこと言っちゃったな 大規模開発云々で名前空間のrubyとhaskellでの差なんて大した問題じゃないってことが言いたかった http://echo.5ch.net/test/read.cgi/tech/1317958045/494
495: デフォルトの名無しさん [sage] 2011/11/12(土) 18:05:45.44 >>493 修飾の無い名前 f だけじゃ区別がつかないのは、常識以前の当たり前な話だろ >>493の例の場合、RubyやSMLならばモジュール空間Aだけをインポートして B.C.f と D.E.f と書くことができる。あるいは、X=A.B.CおよびY=A.D.Eという 局所的なモジュール空間を宣言してX.f および Y.f という短い別名での参照が可能。 HaskellではAだけをインポートするとか、 あるいは局所的なモジュール空間を宣言するとかできないの? RubyやSMLなら「普通に」できるんだけど.... http://echo.5ch.net/test/read.cgi/tech/1317958045/495
496: [―{}@{}@{}-] デフォルトの名無しさん [sage] 2011/11/12(土) 18:08:18.90 >>495 >修飾の無い名前 f だけじゃ区別がつかないのは、常識以前の当たり前な話だろ Rubyのインスタンスメソッドについてはそれができるんだよ。ずっとその話をしていたと思ったんだが >HaskellではAだけをインポートするとか、 >あるいは局所的なモジュール空間を宣言するとかできないの? できません http://echo.5ch.net/test/read.cgi/tech/1317958045/496
497: [―{}@{}@{}-] デフォルトの名無しさん [sage] 2011/11/12(土) 18:12:28.69 >局所的なモジュール空間を宣言してX.f および Y.f という短い別名での参照が可能。 これについては同様のことができるな。局所的なモジュール空間を宣言するわけじゃなくて 単なる別名の導入だけど import qualified A.B.C as X import qualified A.D.E as Y http://echo.5ch.net/test/read.cgi/tech/1317958045/497
498: デフォルトの名無しさん [sage] 2011/11/12(土) 18:15:51.80 >>496 >Rubyのインスタンスメソッドについてはそれができるんだよ。 Rubyのインスタンスメソッドもレシーバで修飾しなければ区別できないよ。 たとえば c = A::B::C.new; e = A::D::E.new という文脈の下で、レシーバで修飾された c.f および e.f という式は正しく評価できるけど、単なる f ではRuby処理形は式を評価できない。(当たり前の話だよね?) http://echo.5ch.net/test/read.cgi/tech/1317958045/498
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 480 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s