高階型について

ところで "高階型" って言い方が正しいのかよくわからないまま使ってます、すいません
16
Kenji Yoshida @xuwei_k

@igeta おぉ、そうなんですか。 Scalaの場合は、JVMがtype erasureなので、言語側でコンパイル時に型を保証すれば、そういう機能はある意味自由に実装しやすい感じだと思います

2013-08-08 21:38:18
ぽけば @pocketberserker

そう、高階型がないおかげで作れないものはいくつかある(そしていつも泣きを見る)

2013-08-08 21:42:11
いげ太 @igeta

@xuwei_k @nagise @k_matsuzaki ええ、まったく、逆に type erasure な方が言語側の自由度高いよなあと思うことしきりで、関数型のアテンションがどんどん Java に持ってかれちゃうなぁと指をくわえてみております(^^;

2013-08-08 21:46:10
kmizu @kmizu

.NETの場合VMレベルでジェネリクスやvarianceが入ってるから言語側での自由な拡張は逆にしづらいよなあ、というのは前に日記に書いた気がするな

2013-08-08 21:48:33
なぎせ ゆうき @nagise

http://t.co/b2cW72j0FX VMで機能を持ってるからそれ以外の形にし難いってのはJavaVMでclassの形がVMに引きずられるのと同じか

2013-08-08 22:03:04
いげ太 @igeta

超個人的な妄想ですが、F# が VS に搭載されなければ、高階型なり型クラスを言語側で自前実装する道もあったんじゃないか、とか思ったりしなくもなくもなく。

2013-08-08 21:55:38
いげ太 @igeta

まあなんですか、.NET 一級市民税ですわな。

2013-08-08 21:56:28
ぽけば @pocketberserker

まぁでも、高階型がないならないでやりようがあるわけなので、F# はかわいいのです

2013-08-08 22:05:53
omanuke @omanuke

@igeta どうせ今でもF#からでしか使えない様な機能を色々実装してるんだから、高階型もF#で閉じて実装してくれないかと期待する毎日です(´・ω・`)

2013-08-08 22:12:02
いげ太 @igeta

@omanuke CLR でやるべきというからには、薄い望みではあるものの、多少は、高階型を CLR レベルで実装するつもりはあるのかなぁとかなわなさげな期待を抱いちゃいつつ、早く欲しいっすよねー。

2013-08-08 22:24:26
omanuke @omanuke

@igeta こうObservableを.NET2.0向けに勝手に内部実装して4.0向けにはしれっと.NETで実装されてたのを使うような感じに、先取り実装してそれがシームレスにCLRでの実装と同じになるようになってくれるといいのかなーと。Donがんばれ超がんばれ。

2013-08-08 22:30:58
いげ太 @igeta

@omanuke あー、タプルとかと同じように。まあただ、C# で高階型使えておいしいの? という話からなような気も。

2013-08-08 22:33:13
omanuke @omanuke

@igeta そう、のでCLRで実装されたらいつかはC#でも使うようになるのかもですが、その前にF#でこううまいこと・・・(´・ω・`)

2013-08-08 22:34:56
おしいれのぼうけん @osiire

モナド則を満たす具体的な何かをプログラミングで使うという話とモナドという抽象的なものを抽象的なまま実装して使うという話が混ざってる。

2013-08-08 22:50:15
Kenji Yoshida @xuwei_k

https://t.co/TzeKiFJrXq 的確過ぎる・・・。そのあたりがとてもわかりづらい上に、その論点にほぼ触れずに、なぜか便乗して高階型の話をしている、というのがさっき自分の書いたblogですね

2013-08-08 22:55:54
kmizu @kmizu

補足:「高階型」についてだけど、Scalaでは「type constructor polymorphism」(型コンストラクタ多相が適訳?)と呼んでいる。 See: https://t.co/VblbVI82eb

2013-08-08 23:20:17
kmizu @kmizu

意味は読んで字のごとくで、型コンストラクタ、要はListとかMapとかParserとか、をパラメタとして扱える機能のことですね。これは当然ながら(?)Haskellにも相当機能があります。というか、Scalaのやつはそれにサブタイピングとか色々ぶちこんで拡張したもの。

2013-08-08 23:23:21