Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // joining of 2 arrows
- (>>>) :: arr a b -> arr b c -> arr a c
- (>>>)
- a -- (f) --> b -- (g) --> c
- // works on pairs
- // f: a -> b
- // g: a -> c
- +---------> a -> (f) -> b
- | \
- a ->| (&&&) +--> (b, c)
- | /
- +---------> a -> (g) -> c
- (&&&) :: arr a b -> arr a c -> arr a (b,c)
- // works on pairs
- // f: a -> b
- // g: c -> d
- +----------> a -> (f) -> b ---+
- | |
- (a, c) ->| (***) +--> (b, d)
- | |
- +----------> c -> (g) -> d ---+
- (***) :: arr a b -> arr c d -> arr (a,c) (b,d)
- // works on pairs
- // f: a -> c
- // g: b -> c
- +------> a -> (f) -> c
- |
- (a or b) ->| (|||)
- |
- +------> b -> (g) -> c
- (|||) :: arr a c -> arr b c -> arr (Either a b) c
- // works on pairs
- // f: a -> b
- // g: c -> d
- +------> a -> (f) -> b
- | \
- (a or c) ->| (+++) + -- (b or d)
- | /
- +------> c -> (g) -> d
- (+++) :: arr a b -> arr c d -> arr (Either a c) (Either b d)
- // works on pairs
- // f: a -> b
- // c
- +----------> a -> (f) -> b ---+
- | |
- (a, c) ->| (first) +--> (b, c)
- | |
- +----------> c ---------------+
- first :: arr a b -> arr (a,c) (b,c)
- // works on pairs
- // c
- // f: a -> b
- +----------> c ---------------+
- | |
- (c, a) ->| (second) +--> (c, b)
- | |
- +----------> a -> (f) -> b ---+
- second :: arr a b -> arr (c,a) (c,b)
Add Comment
Please, Sign In to add comment