[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
498
(1): デフォルトの名無しさん [sage] 2011/11/12(土) 18:15:51.80 AAS
>>496
496(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)と書くならそうはいかない
これを指して>>486
486(2): デフォルトの名無しさん [sage] 2011/11/12(土) 17:11:25.72 AAS
>>484
できるけど、名前が衝突しない場合に限る。これはSMLも同じだよな?
Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、けっきょく修飾インポートするはめになる
Rubyだとメソッド名はグローバルじゃないので衝突を気にする必要すらない
で「けっこう頻繁に衝突」と言った
>>487
487(3): デフォルトの名無しさん [sage] 2011/11/12(土) 17:16:42.29 AAS
>>486
>これはSMLも同じだよな?

いや、ゼンゼン(理由は下記を参照)

>Haskellで短かい名前を多用すると、けっこう頻繁に衝突して、

ナゼこんなことが起きるの?
SMLなら名前空間は(Rubyと同じように)階層化されているから、
適切にモジュール設計していれば、衝突なんて全く気にならないんだけど....

もしかしてHaskellの(モジュールに関する)名前空間というのは
フラット(平坦)なの?
で否定されたのでSMLにもRubyみたいなレシーバ依存の名前lookupがあるのかと思ったけど、
そういう訳でもないってことで良いかな
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s