diff --git a/docs/Exceptions.md b/docs/Exceptions.md index a5a1f137a..ec0eae09c 100644 --- a/docs/Exceptions.md +++ b/docs/Exceptions.md @@ -118,3 +118,9 @@ data FatalError = FatalError {msg :: Text} ```haskell panic :: Text -> a ``` + +Terminate with an uncatchable fatal error. + +```haskell +> panic "Fatal error occured. +``` diff --git a/docs/Function.md b/docs/Function.md index 120377cc6..668591455 100644 --- a/docs/Function.md +++ b/docs/Function.md @@ -10,32 +10,66 @@ Composition ($) :: (a -> b) -> a -> b ``` +Infix form of function application. Applies a function from ``a → b`` to an +argument ``a``. + *Example*: +```haskell +> take 2 $ [1,2,3] +[1,2] +``` + #### . ```haskell (.) :: (b -> c) -> (a -> b) -> a -> c ``` +Function composition. Composes a function ``f`` (``b → c``) with a function +``g`` (``a → b``) yielding ``f ∘ g``. + *Example*: +```haskell +> map (negate . abs) [-1,0,1] +[-1,0,-1] +``` + #### & ```haskell (&) :: a -> (a -> b) -> b ``` +Flipped form of ``($)`` which applies an argument ``a`` to a function ``a → b``. + *Example*: +```haskell +> [1,2,3] & take 2 +[1,2] + +> replicate 10 3 & take 5 & tail +[3,3,3,3] +``` + #### flip ```haskell flip :: (a -> b -> c) -> b -> a -> c ``` +Flip takes a function of two arguments and returns a function taking the them in +reverse order. + *Example*: +```haskell +λ> flip take [1,2,3] 2 +[1,2] +``` + #### on ```haskell @@ -44,6 +78,11 @@ on :: (b -> b -> c) -> (a -> b) -> a -> a -> c *Example*: +```haskell +> sortBy (compare `on` fst) [(1,2), (3,4), (0,1)] +[(0,1),(1,2),(3,4)] +``` + #### const ```haskell diff --git a/protolude.cabal b/protolude.cabal index 3f84c0de1..c9cc2836f 100644 --- a/protolude.cabal +++ b/protolude.cabal @@ -1,5 +1,5 @@ name: protolude -version: 0.1.11 +version: 0.2 synopsis: A sensible set of defaults for writing custom Preludes. description: A sensible set of defaults for writing custom Preludes. homepage: https://github.com/sdiehl/protolude