oi-0.4.0: Library for purely functional lazy interactions with the outer world.

Copyright(c) Nobuo Yamashita 2011-2016
LicenseBSD3
Safe HaskellNone
LanguageHaskell2010

Data.OI.Combinator

Contents

Description

Author : Nobuo Yamashita Maintainer : nobsun@sampou.org Stability : experimental

Synopsis

Interaction Combinators

(|:|) :: (a :-> c) -> (b :-> d) -> (a, b) :-> (c, d) infixl 3 Source

Connect two interactions into an interaction

(|>|) :: (a :-> (p, c)) -> (b :-> (p -> d)) -> (a, b) :-> (c, d) infixl 2 Source

(|/|) :: (a :-> c) -> (c -> b :-> d) -> (a, b) :-> d infixl 2 Source

(|><|) :: (a :-> (p -> (q, c))) -> (b :-> (q -> (p, d))) -> (a, b) :-> (c, d) infixl 1 Source

Iteration

sequenceOI :: [a :-> b] -> [a] :-> [b] Source

foldOI :: (a :-> (b -> b)) -> b -> [a] :-> b Source

Iteration

mapOI :: (a :-> b) -> [a] :-> [b] Source

zipWithOI :: (a -> b :-> c) -> [a] -> [b] :-> [c] Source

zipWithOI' :: (a :-> (b -> c)) -> [a] :-> ([b] -> [c]) Source

Conditional Choice

ifOI :: Bool -> (a :-> c) -> (b :-> c) -> Either a b :-> c Source

Conditional branching

choiceOI :: (a :-> c) -> (b :-> c) -> Bool -> Either a b :-> c Source

choiceOIOn :: (t -> a :-> c) -> (t -> b :-> c) -> (t -> Bool) -> t -> Either a b :-> c Source

Sequencing

seqsOI :: [a :-> b] -> [a] :-> () Source

Sequencing

seqsOI' :: [a] :-> ([a :-> b] -> ()) Source