variance と wildcard

おだすきせんせー面白い
3
なぎせ ゆうき @nagise

@B_head00 で、C#だと変性の指定がインターフェイスで行うのでしたっけ。C#が提供側での変性定義で、Javaが利用側での変性定義ですよね。Scalaならいけるっぽい kmizu.hatenablog.com/entry/20101109…

2014-05-27 15:41:00
なぎせ ゆうき @nagise

JavaでAPIのクラスでメソッド引数にワイルドカードを用いた宣言をしたらおよそdefinition-site varianceになるような気もする kmizu.hatenablog.com/entry/20101109…

2014-05-27 15:45:04
なぎせ ゆうき @nagise

.@nagise いや、やっぱり無理っぽい

2014-05-27 15:54:58
B_head @B_head00

@nagise Scalaはできるんですね。 やっぱり英語読んできっちり勉強するべきだろうか・・・

2014-05-27 15:59:06
Atsushi Igarashi @50storms

@matarillo @nagise Scala でも(公開されたバージョンにあったのかわかりませんが)一瞬、使用側での変性が実装されて、後に捨てられました ;-( プログラマの負担(どこでどの変性を使うか決めるのが)が大きすぎる、というようなことを言ってました。

2014-05-27 17:23:06
Atsushi Igarashi @50storms

@matarillo @nagise 補足: 言ってました、は、オデルスキー氏が、です。(たしか2002年くらいに実装の話を聞いて、次にあった時にはなくなってました。)

2014-05-27 17:26:02
なぎせ ゆうき @nagise

@50storms @matarillo kmizu.hatenablog.com/entry/20101109… 水島さんがuse-site varianceとしてScalaのExistential Typeを挙げてますがこれはまた違うものなのでしょうか…?

2014-05-27 17:33:19
Atsushi Igarashi @50storms

しかし、使用側変性の論文を投稿して、まだ採否が出てない段階で面と向かって「やあ、あれ面白いね、実装したよ」と言われましても…

2014-05-27 17:33:21
なぎせ ゆうき @nagise

使用者変性 = use-site variance でJavaのワイルドカードのことという理解であってるんだろうか。不安になってくるなあ…

2014-05-27 17:35:33
Atsushi Igarashi @50storms

@nagise @matarillo ええと、use-site variance は実質 existential だ、というのが僕の昔の論文の主張のひとつです。その意味では Scala でも「use-site variance ごっこ」はできます。

2014-05-27 17:35:38
なぎせ ゆうき @nagise

@50storms @matarillo 「ごっこ」とおっしゃるのは何かが欠けているからですか…?

2014-05-27 17:37:19
Atsushi Igarashi @50storms

@nagise 少なくとも僕は大丈夫です:-) ただ、ワイルドカードは、変性っぽく見えない記法を(わざと)採用したので、にわかにそう見えないかもしれませんが。

2014-05-27 17:37:39
Atsushi Igarashi @50storms

@nagise @matarillo Scala の existential をどう書くかちゃんと把握してないので嘘かもしれませんが、おそらく書く分量が増えて面倒かな、と。むしろ use-site variance で existential ごっこができるというべきかも?

2014-05-27 17:40:03
Atsushi Igarashi @50storms

@nagise @matarillo 二箇所のワイルドカード ? が実は同じ型、みたいな制約をワイルドカードでは書けませんが、existential ならできる(はず)。

2014-05-27 17:41:04
なぎせ ゆうき @nagise

@50storms @matarillo なるほど。ワイルドカードだと無名だから、こっちとあっちが一緒って定義できないですね

2014-05-27 17:42:00
なぎせ ゆうき @nagise

@50storms @matarillo ありがとうございます。もっと探ってみます

2014-05-27 17:44:28
なぎせ ゆうき @nagise

調べるべきキーワードをgetしたぞ…。宿題が山積みだな…

2014-05-27 17:45:22
Kenji Yoshida @xuwei_k

TLのvarianceとかの話聞いてて、こんなこと思い出したけど twitter.com/xuwei_k/status… そのあたりやっぱり難しいしもう一度TaPL読みなおす必要性感じる

2014-05-27 18:02:11
Kenji Yoshida @xuwei_k

"「Mixed-Site Variance」という最近発表された論文が面白い" ってscala-internalで話題がでてて面白い groups.google.com/d/msg/scala-in…

2013-06-15 17:44:11
Kenji Yoshida @xuwei_k

あと、Scalaのvarianceの話といえば、これ面白いので、誰か読んで教えてください github.com/mpilquist/vari… (注意: pdf直リンク)

2014-05-27 18:18:14
Kenji Yoshida @xuwei_k

半分くらいはわかるのだけど、こういうスライドで、bivarianceとか、higher kindedとか、その組み合わせ(?)の場合の話とかまで真面目に触れるのあまり見ないので

2014-05-27 18:23:17