Scala 2.10 に dependent method types というのが入るらしいよ

gistに書いたものを、ほとんど書き写すだけの簡単なお仕事(`・ω・´)

以下が最新版をゴニョゴニョしてみた結果。(このblog書いている時点の最新の安定版である) 2.9.1で同じことやろうとすると

def withFoo(foo: Foo): foo.Bar = foo.f 

という部分がコンパイル通らないはず。fooという 引数 の抽象型であるBarに依存した型だからっていう感じ?

追記:
例としての自分の書いたコードが適切なのかどうかあやしい気がしてきたがががが(´・ω・`)
StackOverflowの解説がかなり詳しいのでちゃんと知りたい人はそっち読んで!(ぉぃ

以下参考URL
StackOverflowの解説がなぜかやたら詳しい
このコミットらしい
gist上でのちょっとした議論



そして、こんなこと言ってたら

教えてもらった♪

なので、見てみた

みんなこの論文

http://ropas.snu.ac.kr/~bruno/papers/TypeClasses.pdf

読みましょう(`・ω・´)

List[Int]に対してはsumメソッドが呼べて、List[String]に対してsumメソッド呼ぼうとするとコンパイルエラーになるというような感じの、Haskellと比較しての型クラスの話とか、dependent method types以外にも色々書いてある有名な(?)論文です