2010-04-30から1日間の記事一覧

各コンビネータに対応する関数

type Combinator Prelude Monad Applicative a -> a I x = x id ask a -> b -> a K x y = x const return pure (a -> b) -> (c -> a) -> c -> b B x y z = x (y z) (.) liftM (a -> b -> c) -> b -> a -> c C x y z = x z y flip (a -> a) -> a Y x = x (Y x…

同じパターン変数による同値判定

各言語で試した結果は以下のとおり Erlangの場合 できる > case [1,1,1] of [X,X,X] -> "same"; _ -> "different" end. "same" > case [1,1,2] of [X,X,X] -> "same"; _ -> "different" end. "different" Pureの場合 できる > case [1,1,1] of [x,x,x] = "sa…