タグ

forallに関するuehajのブックマーク (1)

  • Haskellのforallについて理解したことを書いておく(ランクN多相限定)。 - uehaj's blog

    Haskellのforallについて理解したことを書いておくyo!(ランクN多相限定*1 )。 前提知識のおさらい: 型・多相型・型検査・型推論… 最初に基概念を整理しておきます。 IntやInt->Intは単相型、aやa->aは多相型である。ここでaを型変数と呼ぶ。型変数を含む型が多相型ってわけです。 言語処理系の実装上、型という概念は型変数や型コンストラクタのツリー構造として表現される。Int,Char,[],->,(,),(,,,),IO aなどが型コンストラクタ。 a,bが型変数。組合せて(a->[Int])->[b]->(a,b)とか。::の右に書くやつです。 型は、プログラムの字面上に直接的実体がある関数や変数だけではなく、値を生じさせる部分式すべてに付随し、コンパイル時に決定されるべき情報である(値あるところに型がある。*2 )。それを決定しようというのが(静的)型検査であ

    Haskellのforallについて理解したことを書いておく(ランクN多相限定)。 - uehaj's blog
    uehaj
    uehaj 2014/01/23
    Haskellの、というよりGHCの、だな
  • 1