Haskell

モナドとかの演算子の型

(>>=) :: Monad m => m a -> (a -> m b) -> m b flip (>>=) :: Monad m => (a -> m b) -> m a -> m b (=<<) :: Monad m => (a -> m b) -> m a -> m b ap :: Monad m => m (a -> b) -> m a -> m b (<*>) :: Applicative f => f (a -> b) -> f a -> f b flip (…

Data.FiniteMap はもう無い

All About Monads (文字化け注意) の example4.hs が実行できない。 使われている Data.FiniteMap と、それ関連の関数が古いらしい。今は、Data.Map を使うらしい。 次のように修正したら動いた。 --- 24行目 - import Data.FiniteMap + import Data.Map ---…

プログラミングHaskellのunfoldを3言語で

プログラミングhaskell 7章の練習問題にある unfold について。 ※Haskell 標準関数 unfoldr の話ではないです。 ●まず haskellで 本で提示されてるコード unfold p h t x | p x = [] | otherwise = h x : unfold p h t (t x) わかりにくいので、パラメータの…

プログラミングHaskellの謎演算子

プログラミングhaskellを読んでいると、時々謎の演算子が現れて戸惑う。 前後の文脈等から察するとこんな感じでしょうか。できればコードそのままの記法をして欲しかった。 ∧ ⇒ && -- 論理積 ∨ ⇒ || -- 論理和 ‐の左端に下向きの鉤がついてる奴 ⇒ not -- 論…