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 投稿