HaskellのData.Sequenceモジュールの操作ガイド

Data.Sequenceの基本操作 Prelude> import Data.Sequence as DS Prelude DS> :set -XOverloadedLists Prelude DS> シーケンスの構築 Prelude DS> DS.empty fromList [] Prelude DS> DS.singleton 5 fromList [5] Prelude DS> 5 <| [6,7] fromList [5,6,7] Prelude DS> [6,7] |> 8 fromList [6,7,8] Prelude DS> [5,6] >< [7,8] f ...

5月19日 04:06 投稿

HaskellのProfunctor概念と実装例

Profunctorの定義 class Profunctor p where dimap :: (a -> b) -> (c -> d) -> p b c -> p a d dimap f g = lmap f . rmap g lmap :: (a -> b) -> p b c -> p a c lmap f = dimap f id rmap :: (b -> c) -> p a b -> p a c rmap = dimap id Profunctorは2つの型パラメータを持つ型クラスで、第1引数が反変(contravariant)、第2引数が共変(covariant) ...

5月18日 10:05 投稿