Guest User

Untitled

a guest
Apr 21st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.75 KB | None | 0 0
  1. -- -------------------------------------------------- --
  2. -- one dot (.)
  3. -- -------------------------------------------------- --
  4.  
  5. ghci
  6. ```haskell
  7. > :t (.)
  8. (.) :: (b -> c) -> (a -> b) -> a -> c
  9. > :t .
  10.  
  11. <interactive>:1:1: error: parse error on input ‘.’
  12. ```
  13.  
  14. -- -------------------------------------------------- --
  15. -- two dots (.)(.)
  16. -- -------------------------------------------------- --
  17.  
  18. ```haskell
  19. (.) :: (b1 -> c1 ) -> (a1 -> b1) -> a1 -> c1
  20. (.) :: (b2 -> c2) -> (a2 -> b2) -> a2 -> c2
  21.  
  22. b1 = b2 -> c2
  23. c1 = (a2 -> b2) -> a2 -> c2
  24.  
  25. (.)(.) ::
  26. (a1 -> b1 ) -> a1 -> c1
  27. (a1 -> b1 ) -> a1 -> ((a2 -> b2) -> a2 -> c2)
  28. (a1 -> (b2 -> c2)) -> a1 -> ((a2 -> b2) -> a2 -> c2)
  29. (a1 -> b2 -> c2 ) -> a1 -> (a2 -> b2) -> a2 -> c2
  30. ```
  31.  
  32. ghci
  33. ```haskell
  34. > :t (.)(.)
  35. (.)(.) :: (a1 -> b -> c) -> a1 -> (a2 -> b) -> a2 -> c
  36. ```
  37.  
  38. -- -------------------------------------------------- --
  39. -- three dots (.)(.)(.) = (.).(.)
  40. -- -------------------------------------------------- --
  41.  
  42. ```haskell
  43. (.) :: (b1 -> c1 ) -> (a1 -> b1 ) -> a1 -> c1
  44. (.) :: (b2 -> c2) -> (a2-> b2) -> a2 -> c2
  45. (.) :: (b3 -> c3) -> (a3 -> b3) -> a3 -> c3
  46.  
  47. b1 = b2 -> c2
  48. b1 = (a3 -> b3) -> a3 -> c3
  49.  
  50. (.).(.)
  51. (b3 -> c3) -> (a2 -> b2) -> a2 -> c2
  52. (b3 -> c3) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  53. ```
  54.  
  55. ghci
  56. ```haskell
  57. > :t (.)(.)(.)
  58. (.)(.)(.) :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
  59.  
  60. > :t (.).(.)
  61. (.).(.) :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
  62.  
  63. > :t (.)((.)(.))
  64. (.)((.)(.)) :: (a1 -> a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
  65.  
  66. > :t ((.)(.))(.)
  67. ((.)(.))(.) :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
  68.  
  69. ```
  70.  
  71. -- -------------------------------------------------- --
  72. -- four dots (.)(.)(.)(.) = ((.)(.)(.))(.)
  73. -- -------------------------------------------------- --
  74.  
  75. ```haskell
  76. (.)(.)(.) :: (b3 -> c3 ) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  77. (.) :: (b4 -> c4) -> (a4 -> b4) -> a4 -> c4
  78.  
  79. b3 = b4 -> c4
  80. c3 = (a4 -> b4) -> a4 -> c4
  81.  
  82. (.)(.)(.)(.) ::
  83.  
  84. (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  85. (a2 -> a3 -> b4 -> c4) -> a2 -> a3 -> ((a4 -> b4) -> a4 ->c4)
  86. (a2 -> a3 -> b4 -> c4) -> a2 -> a3 -> (a4 -> b4) -> a4 ->c4
  87. ```
  88.  
  89. ghci
  90. ```haskell
  91. > :t (.)(.)(.)(.)
  92. (.)(.)(.)(.) :: (a1 -> a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
  93.  
  94. > :t (.)(.)((.)(.))
  95. (.)(.)((.)(.)) :: (b1 -> b2 -> c) -> (a1 -> b1) -> a1 -> (a2 -> b2) -> a2 -> c
  96.  
  97. > :t (.)((.)(.)(.))
  98. (.)((.)(.)(.)) :: (a1 -> b -> c) -> a1 -> (a2 -> a3 -> b) -> a2 -> a3 -> c
  99.  
  100. > :t ((.)(.))(.)(.)
  101. ((.)(.))(.)(.) :: (a1 -> a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
  102.  
  103. > :t ((.)(.)(.))(.)
  104. ((.)(.)(.))(.) > a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
  105.  
  106. ```
  107.  
  108. -- -------------------------------------------------- --
  109. -- five dots (.)(.)(.)(.)(.) = ((.)(.)(.))(.)(.)
  110. -- -------------------------------------------------- --
  111.  
  112. ```haskell
  113. (.)(.)(.) :: (b3 -> c3 ) -> (a2 -> a3 -> b3 ) -> a2 -> a3 -> c3
  114. (.) :: (b4 -> c4) -> (a4 -> b4) -> a4 -> c4
  115. (.) :: (b5 -> c5) -> (a5 -> b5) -> a5 -> c5
  116. b3 = b4 -> c4
  117. = a5 -> c5
  118.  
  119. (.)(.)(.)(.)(.) ::
  120. a2 -> a3 ->c3
  121. (b5 -> c5) -> (a5 -> b5) -> ((a4 -> b4) -> a4 -> c4)
  122. (b5 -> c5) -> (a5 -> b5) -> ((a4 -> a5) -> a4 -> c5)
  123. (b5 -> c5) -> (a5 -> b5) -> (a4 -> a5) -> a4 -> c5
  124. ```
  125.  
  126. ghci
  127. ```haskell
  128. > :t (.)(.)(.)(.)(.)
  129. (.)(.)(.)(.)(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
  130.  
  131. > :t (.)(.)(.)((.)(.))
  132. (.)(.)(.)((.)(.)) :: (a1 -> a2 -> a3 -> b -> c) -> a1 -> a2 -> a3 -> (a4 -> b) -> a4 -> c
  133.  
  134. > :t (.)(.)((.)(.)(.))
  135. (.)(.)((.)(.)(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
  136.  
  137. > :t (.)((.)(.)(.)(.))
  138. (.)((.)(.)(.)(.)) :: (a1 -> a2 -> a3 -> b -> c) -> a1 -> a2 -> a3 -> (a4 -> b) -> a4 -> c
  139.  
  140. > :t ((.)(.))(.)(.)(.)
  141. ((.)(.))(.)(.)(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
  142.  
  143. > :t ((.)(.)(.))(.)(.)
  144. ((.)(.)(.))(.)(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
  145.  
  146. > :t ((.)(.)(.)(.))(.)
  147. ((.)(.)(.)(.))(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
  148. ```
  149.  
  150. -- -------------------------------------------------- --
  151. -- five dots (.).(.).(.) = ((.).(.)).(.) = (.)((.).(.))(.)
  152. -- -------------------------------------------------- --
  153.  
  154. ```haskell
  155. (.) :: (b4 -> c4 ) -> (a4 -> b4 ) -> (a4 -> c4)
  156. (.)(.)(.) :: (b3 -> c3) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  157. (.) :: (b5 -> c5) -> (a5 -> b5) -> (a5 -> c5)
  158. b4 = b3 -> c3
  159. = (a5 -> b5) -> (a5 -> c5)
  160.  
  161. (.).(.).(.) = ((.).(.)).(.) = (.)((.).(.))(.) = (.)((.)(.)(.))(.) ::
  162. (b5 -> c5) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  163. (b5 -> c5) -> (a2 -> a3 -> a5 -> b5) -> a2 -> a3 -> a5 -> c5
  164. ```
  165.  
  166. ghci
  167. ```haskell
  168. > :t (.).(.).(.)
  169. (.).(.).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
  170.  
  171. > :t (.).((.).(.))
  172. (.).((.).(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
  173.  
  174. > :t ((.).(.)).(.)
  175. ((.).(.)).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
  176.  
  177. > :t ((.).)(.).(.)
  178. ((.).)(.).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
  179.  
  180. > :t (.).(.)(.(.))
  181. (.).(.)(.(.)) :: (b1 -> ((a1 -> b2) -> a1 -> c1) -> c2) -> (a2 -> b1) -> a2 -> (b2 -> c1) -> c2
  182. ```
  183.  
  184. -- -------------------------------------------------- --
  185. -- seven dots (.).(.).(.).(.) = (.).(.).((.).(.))
  186. -- -------------------------------------------------- --
  187.  
  188. ```haskell
  189. (.) :: (b4 -> c4 ) -> (a4 -> b4 ) -> (a4 -> c4)
  190. (.)(.)(.) :: (b3 -> c3) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  191. (.)(.)(.) :: (b7 -> c7) -> (a6 -> a7 -> b7) -> a6 -> a7 -> c7
  192. b4 = b3 -> c3
  193. b4 = (a6 -> a7 -> b7) -> a6 -> a7 -> c7
  194.  
  195. (.).(.).(.).(.) = (.).(.).((.).(.)) = ((.).(.)).((.).(.)) = (.)((.).(.))((.).(.)) = (.)((.)(.)(.))((.)(.)(.)) ::
  196. a4 -> c4
  197. (b7 -> c7) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
  198. (b7 -> c7) -> (a2 -> a3 -> a6 -> a7 -> b7) -> a2 -> a3 -> a6 -> a7 -> c7
  199. ```
  200.  
  201. ghci
  202. ```hasekell
  203. > :t (.).(.).(.).(.)
  204. (.).(.).(.).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
  205.  
  206. > :t (.).(.).((.).(.))
  207. (.).(.).((.).(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
  208.  
  209. > :t ((.).(.)).((.).(.))
  210. ((.).(.)).((.).(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
  211.  
  212. > :t (.).((.).((.).(.)))
  213. (.).((.).((.).(.))) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
  214.  
  215. > :t ((.)(.)(.)).((.)(.)(.))
  216. ((.)(.)(.)).((.)(.)(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
  217. ```
Add Comment
Please, Sign In to add comment