Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- -------------------------------------------------- --
- -- one dot (.)
- -- -------------------------------------------------- --
- ghci
- ```haskell
- > :t (.)
- (.) :: (b -> c) -> (a -> b) -> a -> c
- > :t .
- <interactive>:1:1: error: parse error on input ‘.’
- ```
- -- -------------------------------------------------- --
- -- two dots (.)(.)
- -- -------------------------------------------------- --
- ```haskell
- (.) :: (b1 -> c1 ) -> (a1 -> b1) -> a1 -> c1
- (.) :: (b2 -> c2) -> (a2 -> b2) -> a2 -> c2
- b1 = b2 -> c2
- c1 = (a2 -> b2) -> a2 -> c2
- (.)(.) ::
- (a1 -> b1 ) -> a1 -> c1
- (a1 -> b1 ) -> a1 -> ((a2 -> b2) -> a2 -> c2)
- (a1 -> (b2 -> c2)) -> a1 -> ((a2 -> b2) -> a2 -> c2)
- (a1 -> b2 -> c2 ) -> a1 -> (a2 -> b2) -> a2 -> c2
- ```
- ghci
- ```haskell
- > :t (.)(.)
- (.)(.) :: (a1 -> b -> c) -> a1 -> (a2 -> b) -> a2 -> c
- ```
- -- -------------------------------------------------- --
- -- three dots (.)(.)(.) = (.).(.)
- -- -------------------------------------------------- --
- ```haskell
- (.) :: (b1 -> c1 ) -> (a1 -> b1 ) -> a1 -> c1
- (.) :: (b2 -> c2) -> (a2-> b2) -> a2 -> c2
- (.) :: (b3 -> c3) -> (a3 -> b3) -> a3 -> c3
- b1 = b2 -> c2
- b1 = (a3 -> b3) -> a3 -> c3
- (.).(.)
- (b3 -> c3) -> (a2 -> b2) -> a2 -> c2
- (b3 -> c3) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- ```
- ghci
- ```haskell
- > :t (.)(.)(.)
- (.)(.)(.) :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
- > :t (.).(.)
- (.).(.) :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
- > :t (.)((.)(.))
- (.)((.)(.)) :: (a1 -> a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
- > :t ((.)(.))(.)
- ((.)(.))(.) :: (b -> c) -> (a1 -> a2 -> b) -> a1 -> a2 -> c
- ```
- -- -------------------------------------------------- --
- -- four dots (.)(.)(.)(.) = ((.)(.)(.))(.)
- -- -------------------------------------------------- --
- ```haskell
- (.)(.)(.) :: (b3 -> c3 ) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- (.) :: (b4 -> c4) -> (a4 -> b4) -> a4 -> c4
- b3 = b4 -> c4
- c3 = (a4 -> b4) -> a4 -> c4
- (.)(.)(.)(.) ::
- (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- (a2 -> a3 -> b4 -> c4) -> a2 -> a3 -> ((a4 -> b4) -> a4 ->c4)
- (a2 -> a3 -> b4 -> c4) -> a2 -> a3 -> (a4 -> b4) -> a4 ->c4
- ```
- ghci
- ```haskell
- > :t (.)(.)(.)(.)
- (.)(.)(.)(.) :: (a1 -> a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
- > :t (.)(.)((.)(.))
- (.)(.)((.)(.)) :: (b1 -> b2 -> c) -> (a1 -> b1) -> a1 -> (a2 -> b2) -> a2 -> c
- > :t (.)((.)(.)(.))
- (.)((.)(.)(.)) :: (a1 -> b -> c) -> a1 -> (a2 -> a3 -> b) -> a2 -> a3 -> c
- > :t ((.)(.))(.)(.)
- ((.)(.))(.)(.) :: (a1 -> a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
- > :t ((.)(.)(.))(.)
- ((.)(.)(.))(.) > a2 -> b -> c) -> a1 -> a2 -> (a3 -> b) -> a3 -> c
- ```
- -- -------------------------------------------------- --
- -- five dots (.)(.)(.)(.)(.) = ((.)(.)(.))(.)(.)
- -- -------------------------------------------------- --
- ```haskell
- (.)(.)(.) :: (b3 -> c3 ) -> (a2 -> a3 -> b3 ) -> a2 -> a3 -> c3
- (.) :: (b4 -> c4) -> (a4 -> b4) -> a4 -> c4
- (.) :: (b5 -> c5) -> (a5 -> b5) -> a5 -> c5
- b3 = b4 -> c4
- = a5 -> c5
- (.)(.)(.)(.)(.) ::
- a2 -> a3 ->c3
- (b5 -> c5) -> (a5 -> b5) -> ((a4 -> b4) -> a4 -> c4)
- (b5 -> c5) -> (a5 -> b5) -> ((a4 -> a5) -> a4 -> c5)
- (b5 -> c5) -> (a5 -> b5) -> (a4 -> a5) -> a4 -> c5
- ```
- ghci
- ```haskell
- > :t (.)(.)(.)(.)(.)
- (.)(.)(.)(.)(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
- > :t (.)(.)(.)((.)(.))
- (.)(.)(.)((.)(.)) :: (a1 -> a2 -> a3 -> b -> c) -> a1 -> a2 -> a3 -> (a4 -> b) -> a4 -> c
- > :t (.)(.)((.)(.)(.))
- (.)(.)((.)(.)(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
- > :t (.)((.)(.)(.)(.))
- (.)((.)(.)(.)(.)) :: (a1 -> a2 -> a3 -> b -> c) -> a1 -> a2 -> a3 -> (a4 -> b) -> a4 -> c
- > :t ((.)(.))(.)(.)(.)
- ((.)(.))(.)(.)(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
- > :t ((.)(.)(.))(.)(.)
- ((.)(.)(.))(.)(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
- > :t ((.)(.)(.)(.))(.)
- ((.)(.)(.)(.))(.) :: (b1 -> c) -> (b2 -> b1) -> (a -> b2) -> a -> c
- ```
- -- -------------------------------------------------- --
- -- five dots (.).(.).(.) = ((.).(.)).(.) = (.)((.).(.))(.)
- -- -------------------------------------------------- --
- ```haskell
- (.) :: (b4 -> c4 ) -> (a4 -> b4 ) -> (a4 -> c4)
- (.)(.)(.) :: (b3 -> c3) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- (.) :: (b5 -> c5) -> (a5 -> b5) -> (a5 -> c5)
- b4 = b3 -> c3
- = (a5 -> b5) -> (a5 -> c5)
- (.).(.).(.) = ((.).(.)).(.) = (.)((.).(.))(.) = (.)((.)(.)(.))(.) ::
- (b5 -> c5) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- (b5 -> c5) -> (a2 -> a3 -> a5 -> b5) -> a2 -> a3 -> a5 -> c5
- ```
- ghci
- ```haskell
- > :t (.).(.).(.)
- (.).(.).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
- > :t (.).((.).(.))
- (.).((.).(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
- > :t ((.).(.)).(.)
- ((.).(.)).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
- > :t ((.).)(.).(.)
- ((.).)(.).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> a1 -> a2 -> a3 -> c
- > :t (.).(.)(.(.))
- (.).(.)(.(.)) :: (b1 -> ((a1 -> b2) -> a1 -> c1) -> c2) -> (a2 -> b1) -> a2 -> (b2 -> c1) -> c2
- ```
- -- -------------------------------------------------- --
- -- seven dots (.).(.).(.).(.) = (.).(.).((.).(.))
- -- -------------------------------------------------- --
- ```haskell
- (.) :: (b4 -> c4 ) -> (a4 -> b4 ) -> (a4 -> c4)
- (.)(.)(.) :: (b3 -> c3) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- (.)(.)(.) :: (b7 -> c7) -> (a6 -> a7 -> b7) -> a6 -> a7 -> c7
- b4 = b3 -> c3
- b4 = (a6 -> a7 -> b7) -> a6 -> a7 -> c7
- (.).(.).(.).(.) = (.).(.).((.).(.)) = ((.).(.)).((.).(.)) = (.)((.).(.))((.).(.)) = (.)((.)(.)(.))((.)(.)(.)) ::
- a4 -> c4
- (b7 -> c7) -> (a2 -> a3 -> b3) -> a2 -> a3 -> c3
- (b7 -> c7) -> (a2 -> a3 -> a6 -> a7 -> b7) -> a2 -> a3 -> a6 -> a7 -> c7
- ```
- ghci
- ```hasekell
- > :t (.).(.).(.).(.)
- (.).(.).(.).(.) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
- > :t (.).(.).((.).(.))
- (.).(.).((.).(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
- > :t ((.).(.)).((.).(.))
- ((.).(.)).((.).(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
- > :t (.).((.).((.).(.)))
- (.).((.).((.).(.))) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
- > :t ((.)(.)(.)).((.)(.)(.))
- ((.)(.)(.)).((.)(.)(.)) :: (b -> c) -> (a1 -> a2 -> a3 -> a4 -> b) -> a1 -> a2 -> a3 -> a4 -> c
- ```
Add Comment
Please, Sign In to add comment