Stubs.
This commit is contained in:
@@ -0,0 +1,78 @@
|
|||||||
|
Applicative
|
||||||
|
===========
|
||||||
|
|
||||||
|
#### Functor
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
class Functor (f :: * -> *) where
|
||||||
|
fmap :: (a -> b) -> f a -> f b
|
||||||
|
(<$) :: a -> f b -> f a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
(<$>) :: Functor f => (a -> b) -> f a -> f b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
($>) :: Functor f => f a -> b -> f b
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Applicatives
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
class Functor f => Applicative (f :: * -> *) where
|
||||||
|
pure :: a -> f a
|
||||||
|
(<*>) :: f (a -> b) -> f a -> f b
|
||||||
|
(*>) :: f a -> f b -> f b
|
||||||
|
(<*) :: f a -> f b -> f a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
(<$>) :: Functor f => (a -> b) -> f a -> f b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
orAlt :: (Alternative f, Monoid a) => f a -> f a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
orEmpty :: Alternative f => Bool -> a -> f a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
eitherA :: (Alternative f) => f a -> f b -> f (Either a b)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Alternative
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
class Applicative f => Alternative (f :: * -> *) where
|
||||||
|
empty :: f a
|
||||||
|
(<|>) :: f a -> f a -> f a
|
||||||
|
some :: f a -> f [a]
|
||||||
|
many :: f a -> f [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
(<|>) :: Alternative f => f a -> f a -> f a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
many :: Alternative f => f a -> f [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
some :: Alternative f => f a -> f [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
optional :: Alternative f => f a -> f (Maybe a)
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
liftA :: Applicative f => (a -> b) -> f a -> f b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
empty :: Alternative f => f a
|
||||||
|
```
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
Exception Handling
|
||||||
|
==================
|
||||||
|
|
||||||
|
#### MonadError
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
class Monad m => MonadError e (m :: * -> *) | m -> e where
|
||||||
|
throwError :: e -> m a
|
||||||
|
catchError :: m a -> (e -> m a) -> m a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
type Except e = ExceptT e Identity
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
newtype ExceptT e (m :: * -> *) a
|
||||||
|
= Control.Monad.Trans.Except.ExceptT (m (Either e a))
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
throwError :: MonadError e m => e -> m a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
catchError :: MonadError e m => m a -> (e -> m a) -> m a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
runExcept :: Except e a -> Either e a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
runExceptT :: ExceptT e m a -> m (Either e a)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Exceptions
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
class (Typeable e, Show e) => Exception e where
|
||||||
|
toException :: e -> SomeException
|
||||||
|
fromException :: SomeException -> Maybe e
|
||||||
|
GHC.Exception.displayException :: e -> String
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
throwIO :: (MonadIO m, Exception e) => e -> m a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
throwTo :: (MonadIO m, Exception e) => ThreadId -> e -> m ()
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
throwSTM :: Exception e => e -> STM a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
throwError :: MonadError e m => e -> m a
|
||||||
|
```
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
Functions
|
||||||
|
=========
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
($) :: (a -> b) -> a -> b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
(&) :: a -> (a -> b) -> b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
(.) :: (b -> c) -> (a -> b) -> a -> c
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
flip :: (a -> b -> c) -> b -> a -> c
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
const :: a -> b -> a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
fix :: (a -> a) -> a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
($!) :: (a -> b) -> a -> b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
identity :: a -> a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
($!!) :: NFData a => (a -> b) -> a -> b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
($!!) :: NFData a => (a -> b) -> a -> b
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
force :: NFData a => a -> a
|
||||||
|
```
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
Welcome to project documentation.
|
Welcome to project documentation.
|
||||||
|
|
||||||
|
- [Functions](Function.md)
|
||||||
|
- [Functors](Applicative.md)
|
||||||
- [Monad](Monad.md)
|
- [Monad](Monad.md)
|
||||||
|
- [Maybe](Maybe.md)
|
||||||
|
- [Lists](List.md)
|
||||||
|
- [Folds](Folds.md)
|
||||||
|
- [Dictionaries](Map.md)
|
||||||
|
- [Sets](Set.md)
|
||||||
|
- [Exception Handling](Exceptions.md)
|
||||||
|
|||||||
+100
@@ -0,0 +1,100 @@
|
|||||||
|
List
|
||||||
|
====
|
||||||
|
|
||||||
|
#### Slicing
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
head :: Foldable f => f a -> Maybe a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
tailMay :: [a] -> Maybe [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
tailSafe :: [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
initMay :: [a] -> Maybe [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
initSafe :: [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
initDef :: [a] -> [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
lastMay :: [a] -> Maybe a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
lastDef :: a -> [a] -> a
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
list :: [b] -> (a -> b) -> [a] -> [b]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
drop :: Int -> [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
take :: Int -> [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Unpacking
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
uncons :: [a] -> Maybe (a, [a])
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
unsnoc :: [x] -> Maybe ([x],x)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Sorting
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
sortOn :: Ord o => (a -> o) -> [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Removing
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
ordNub :: Ord a => [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Splitting
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
splitAt :: Int -> [a] -> ([a], [a])
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
splitAt :: Int -> [a] -> ([a], [a])
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
intercalate :: [a] -> [[a]] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Comparison
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
isPrefixOf :: Eq a => [a] -> [a] -> Bool
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Filter
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
filter :: (a -> Bool) -> [a] -> [a]
|
||||||
|
```
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
replicate :: Int -> a -> [a]
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user