@nagise ScalaとHaskellでは、そもそも方向性が全然ちがうよぅ。Haskellはオブジェクト指向的なクラスベースの型システムがないですし
2013-09-12 19:13:54@yuroyoro それは知ってるのだけど、ジェネリクス周りではHaskellがよく引き合いに出されるのでそこは抑えておきたいかなあと。HaskellでやれてScalaでできないことってなんだろうとか
2013-09-12 19:16:12@nagise 型システム上の制約でぱっと思い付くのは、継承をサポートするが故の型推論の限界ですかね。haskellやocamlは関数の引数の型を省略出来るけどScalaはできない
2013-09-12 19:17:58@nagise @yuroyoro Haskellで出来る事と言う時は、Haskell 98というHaskellの標準部分で出来る事を指す時と、様々な言語拡張部分を含んだGHCというHaskellのデファクトスタンダード的な処理系で出来ることと、混同しない様にしないと駄目です。
2013-09-12 19:25:03@yuroyoro @tmiya_ ぐぬぬ。興味があるのは型システムでどういうパラダイムを持てば何ができるかというところなんですけどね。
2013-09-12 19:27:29@nagise なので、HaskellもGHC最新機能を追っかけていると、色々Scala同様に色々な新機能が有ったり、それ故のカオスさみたいなものがあったりします。逆にHaskell 98の範囲内だけでHaskellしてると確かに歴史みたいな感じもあるかも。
2013-09-12 19:28:03.@nagise @yuroyoro 値が多相になれないというかHaskellのforallが直接表現できないので、Haskell版のこれ https://t.co/3ORDiACCeV をScalaで書くとこんなに長く、とか https://t.co/15YaZQprls
2013-09-12 19:29:14@nagise @yuroyoro うーむ。そういうことだと、TAPL, ATTAPLと読んで勉強して、そのあとは論文読んで、になってしまうのではないですかねぇ。。。あるいはとりあえず http://t.co/OoglCn9DBE を読んで済ますとか。。。
2013-09-12 19:34:27@yuroyoro @xuwei_k @nagise Scalaで型パラメータをとる関数はメソッド型でしか定義できませんが、Haskellのforallがあれば値型として扱えるのですよー
2013-09-12 19:46:47@kmizu @nagise @yuroyoro いやまぁ、何が出来るのかについて最新の論文まで読める様になりたいなら、TAPL -> ATTAPL と進めば充分なのかなぁ、みたいな。
2013-09-12 19:58:11@halcat0x15a @yuroyoro @xuwei_k @nagise あれ?Haskell 2010ってforallサポートしてましたっけ?
2013-09-12 19:58:13@halcat0x15a @yuroyoro @xuwei_k @nagise と自分は思ってたんですが、実は違いましたっけ? {-# LANGUAGE RankNTypes #-}. は GHCのpragmaだと思い込んでた。
2013-09-12 20:02:28書いた http://t.co/5ByUQZsx96 "Scalaz の NaturalTransformation"
2013-09-12 20:20:11@kmizu @halcat0x15a @nagise @xuwei_k @yuroyoro forall のサポート状況は、言語の規格や処理系によってまちまちなので、そこが混乱の原因になっているかもしれません。
2013-09-12 20:28:03@kmizu @halcat0x15a @nagise @xuwei_k @yuroyoro とりあえず、 型変数を(明示的に)forall で修飾できるようなるだけなのが Haskell2014(予定)で http://t.co/5EzdDHc6jk
2013-09-12 20:33:21