[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
498(1): デフォルトの名無しさん [sage] 2011/11/12(土) 18:15:51.80 AAS
>>496496(1): [―{}@{}@{}-] デフォルトの名無しさん [sage] 2011/11/12(土) 18:08:18.90 AAS
>>495
>修飾の無い名前 f だけじゃ区別がつかないのは、常識以前の当たり前な話だろ
Rubyのインスタンスメソッドについてはそれができるんだよ。ずっとその話をしていたと思ったんだが
>HaskellではAだけをインポートするとか、
>あるいは局所的なモジュール空間を宣言するとかできないの?
できません
>Rubyのインスタンスメソッドについてはそれができるんだよ。
Rubyのインスタンスメソッドもレシーバで修飾しなければ区別できないよ。
たとえば
c = A::B::C.new; e = A::D::E.new
という文脈の下で、レシーバで修飾された
c.f および e.f
という式は正しく評価できるけど、単なる
f
ではRuby処理形は式を評価できない。(当たり前の話だよね?)
499(1): [―{}@{}@{}-] デフォルトの名無しさん [sage] 2011/11/12(土) 18:22:34.43 AAS
>>498
もちろん。でもHaskellにはその能力がない
Rubyでuri.schemeと書くときにメソッド名schemeが他と衝突するのを心配する必要はないけど、
Haskellで(scheme uri)と書くならそうはいかない
これを指して>>486486(2): デフォルトの名無しさん [sage] 2011/11/12(土) 17:11:25.72 AAS
>>484
できるけど、名前が衝突しない場合に限る。これはSMLも同じだよな?
Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、けっきょく修飾インポートするはめになる
Rubyだとメソッド名はグローバルじゃないので衝突を気にする必要すらない
で「けっこう頻繁に衝突」と言った
>>487487(3): デフォルトの名無しさん [sage] 2011/11/12(土) 17:16:42.29 AAS
>>486
>これはSMLも同じだよな?
いや、ゼンゼン(理由は下記を参照)
>Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、
ナゼこんなことが起きるの?
SMLなら名前空間は(Rubyと同じように)階層化されているから、
適切にモジュール設計していれば、衝突なんて全く気にならないんだけど....
もしかしてHaskellの(モジュールに関する)名前空間というのは
フラット(平坦)なの?
で否定されたのでSMLにもRubyみたいなレシーバ依存の名前lookupがあるのかと思ったけど、
そういう訳でもないってことで良いかな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s