@igeta おぉ、そうなんですか。 Scalaの場合は、JVMがtype erasureなので、言語側でコンパイル時に型を保証すれば、そういう機能はある意味自由に実装しやすい感じだと思います
2013-08-08 21:38:18@xuwei_k @nagise @k_matsuzaki ええ、まったく、逆に type erasure な方が言語側の自由度高いよなあと思うことしきりで、関数型のアテンションがどんどん Java に持ってかれちゃうなぁと指をくわえてみております(^^;
2013-08-08 21:46:10.NETの場合VMレベルでジェネリクスやvarianceが入ってるから言語側での自由な拡張は逆にしづらいよなあ、というのは前に日記に書いた気がするな
2013-08-08 21:48:33http://t.co/b2cW72j0FX VMで機能を持ってるからそれ以外の形にし難いってのはJavaVMでclassの形がVMに引きずられるのと同じか
2013-08-08 22:03:04超個人的な妄想ですが、F# が VS に搭載されなければ、高階型なり型クラスを言語側で自前実装する道もあったんじゃないか、とか思ったりしなくもなくもなく。
2013-08-08 21:55:38@igeta どうせ今でもF#からでしか使えない様な機能を色々実装してるんだから、高階型もF#で閉じて実装してくれないかと期待する毎日です(´・ω・`)
2013-08-08 22:12:02@omanuke CLR でやるべきというからには、薄い望みではあるものの、多少は、高階型を CLR レベルで実装するつもりはあるのかなぁとかなわなさげな期待を抱いちゃいつつ、早く欲しいっすよねー。
2013-08-08 22:24:26@igeta こうObservableを.NET2.0向けに勝手に内部実装して4.0向けにはしれっと.NETで実装されてたのを使うような感じに、先取り実装してそれがシームレスにCLRでの実装と同じになるようになってくれるといいのかなーと。Donがんばれ超がんばれ。
2013-08-08 22:30:58@igeta そう、のでCLRで実装されたらいつかはC#でも使うようになるのかもですが、その前にF#でこううまいこと・・・(´・ω・`)
2013-08-08 22:34:56モナド則を満たす具体的な何かをプログラミングで使うという話とモナドという抽象的なものを抽象的なまま実装して使うという話が混ざってる。
2013-08-08 22:50:15https://t.co/TzeKiFJrXq 的確過ぎる・・・。そのあたりがとてもわかりづらい上に、その論点にほぼ触れずに、なぜか便乗して高階型の話をしている、というのがさっき自分の書いたblogですね
2013-08-08 22:55:54補足:「高階型」についてだけど、Scalaでは「type constructor polymorphism」(型コンストラクタ多相が適訳?)と呼んでいる。 See: https://t.co/VblbVI82eb
2013-08-08 23:20:17意味は読んで字のごとくで、型コンストラクタ、要はListとかMapとかParserとか、をパラメタとして扱える機能のことですね。これは当然ながら(?)Haskellにも相当機能があります。というか、Scalaのやつはそれにサブタイピングとか色々ぶちこんで拡張したもの。
2013-08-08 23:23:21