2012-05-01から1ヶ月間の記事一覧
ラムダ計算でEither Either型の値をパターンマッチする状況を考えます。 「データコンストラクタのパターンマッチ」は,下図のようにしてラムダ計算で表現できます。 ラムダ計算でBool 今度は,Bool型の値をパターンマッチする状況を考えます。 TrueやFalse…
Bool Either () () true Left false Right この記事では,上記の対応付けを使って,ポイントフリースタイルで論理演算を定義します。 否定 not の定義 a not a true false false true notを定義するには,ArrowChoiceの(|||)を使います。 not :: Either () (…
3つの指数法則 指数法則を数式から型に書き換える 数式 型 b -> a Either a b (a, b) この表の通りに指数法則を書き換えると,こうなります。 (a, b) -> c = a -> (b -> c) (a -> b, a -> c) = a -> (b, c) (a -> c, b -> c) = (Either a b -> c) これらは,…