Guest User

Untitled

a guest
Jul 16th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. // joining of 2 arrows
  2. (>>>) :: arr a b -> arr b c -> arr a c
  3.  
  4. (>>>)
  5. a -- (f) --> b -- (g) --> c
  6.  
  7. // works on pairs
  8. // f: a -> b
  9. // g: a -> c
  10.  
  11. +---------> a -> (f) -> b
  12. | \
  13. a ->| (&&&) +--> (b, c)
  14. | /
  15. +---------> a -> (g) -> c
  16.  
  17. (&&&) :: arr a b -> arr a c -> arr a (b,c)
  18.  
  19.  
  20. // works on pairs
  21. // f: a -> b
  22. // g: c -> d
  23.  
  24. +----------> a -> (f) -> b ---+
  25. | |
  26. (a, c) ->| (***) +--> (b, d)
  27. | |
  28. +----------> c -> (g) -> d ---+
  29.  
  30. (***) :: arr a b -> arr c d -> arr (a,c) (b,d)
  31.  
  32.  
  33. // works on pairs
  34. // f: a -> c
  35. // g: b -> c
  36.  
  37. +------> a -> (f) -> c
  38. |
  39. (a or b) ->| (|||)
  40. |
  41. +------> b -> (g) -> c
  42.  
  43. (|||) :: arr a c -> arr b c -> arr (Either a b) c
  44.  
  45.  
  46. // works on pairs
  47. // f: a -> b
  48. // g: c -> d
  49.  
  50. +------> a -> (f) -> b
  51. | \
  52. (a or c) ->| (+++) + -- (b or d)
  53. | /
  54. +------> c -> (g) -> d
  55.  
  56. (+++) :: arr a b -> arr c d -> arr (Either a c) (Either b d)
  57.  
  58.  
  59. // works on pairs
  60. // f: a -> b
  61. // c
  62.  
  63. +----------> a -> (f) -> b ---+
  64. | |
  65. (a, c) ->| (first) +--> (b, c)
  66. | |
  67. +----------> c ---------------+
  68.  
  69. first :: arr a b -> arr (a,c) (b,c)
  70.  
  71.  
  72.  
  73. // works on pairs
  74. // c
  75. // f: a -> b
  76.  
  77. +----------> c ---------------+
  78. | |
  79. (c, a) ->| (second) +--> (c, b)
  80. | |
  81. +----------> a -> (f) -> b ---+
  82.  
  83. second :: arr a b -> arr (c,a) (c,b)
Add Comment
Please, Sign In to add comment