expand list processing functions

This commit is contained in:
Stephen Diehl
2016-12-15 15:38:15 +00:00
parent 1140df0f91
commit 5ce97cd0e9
+42 -6
View File
@@ -4,46 +4,62 @@ List
Slicing
-------
#### head
```haskell
head :: Foldable f => f a -> Maybe a
```
#### tailMay
```haskell
tailMay :: [a] -> Maybe [a]
```
#### tailSafe
```haskell
tailSafe :: [a] -> [a]
```
#### initMay
```haskell
initMay :: [a] -> Maybe [a]
```
#### initSafe
```haskell
initSafe :: [a] -> [a]
```
#### initDef
```haskell
initDef :: [a] -> [a] -> [a]
```
#### lastMay
```haskell
lastMay :: [a] -> Maybe a
```
#### lastDef
```haskell
lastDef :: a -> [a] -> a
```
```haskell
list :: [b] -> (a -> b) -> [a] -> [b]
```
#### drop
```haskell
drop :: Int -> [a] -> [a]
```
#### take
```haskell
take :: Int -> [a] -> [a]
```
@@ -51,14 +67,20 @@ take :: Int -> [a] -> [a]
Unpacking
---------
#### uncons
```haskell
uncons :: [a] -> Maybe (a, [a])
```
#### unsnoc
```haskell
unsnoc :: [x] -> Maybe ([x],x)
```
#### unsnoc
```haskell
list :: [b] -> (a -> b) -> [a] -> [b]
```
@@ -66,6 +88,8 @@ list :: [b] -> (a -> b) -> [a] -> [b]
Sorting
---------
#### sortOn
```haskell
sortOn :: Ord o => (a -> o) -> [a] -> [a]
```
@@ -73,6 +97,8 @@ sortOn :: Ord o => (a -> o) -> [a] -> [a]
Removing
---------
#### ordNub
```haskell
ordNub :: Ord a => [a] -> [a]
```
@@ -80,14 +106,14 @@ ordNub :: Ord a => [a] -> [a]
Splitting
---------
```haskell
splitAt :: Int -> [a] -> ([a], [a])
```
#### splitAt
```haskell
splitAt :: Int -> [a] -> ([a], [a])
```
#### intercalate
```haskell
intercalate :: [a] -> [[a]] -> [a]
```
@@ -95,6 +121,8 @@ intercalate :: [a] -> [[a]] -> [a]
Comparison
---------
#### isPrefixOf
```haskell
isPrefixOf :: Eq a => [a] -> [a] -> Bool
```
@@ -102,10 +130,14 @@ isPrefixOf :: Eq a => [a] -> [a] -> Bool
Filtering
---------
#### filter
```haskell
filter :: (a -> Bool) -> [a] -> [a]
```
#### replicate
```haskell
replicate :: Int -> a -> [a]
```
@@ -113,10 +145,14 @@ replicate :: Int -> a -> [a]
Indexing
--------
#### atMay
```haskell
atMay :: [a] -> Int -> Maybe a
```
#### atDef
```haskell
atDef :: a -> [a] -> Int -> a
```