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 Slicing
------- -------
#### head
```haskell ```haskell
head :: Foldable f => f a -> Maybe a head :: Foldable f => f a -> Maybe a
``` ```
#### tailMay
```haskell ```haskell
tailMay :: [a] -> Maybe [a] tailMay :: [a] -> Maybe [a]
``` ```
#### tailSafe
```haskell ```haskell
tailSafe :: [a] -> [a] tailSafe :: [a] -> [a]
``` ```
#### initMay
```haskell ```haskell
initMay :: [a] -> Maybe [a] initMay :: [a] -> Maybe [a]
``` ```
#### initSafe
```haskell ```haskell
initSafe :: [a] -> [a] initSafe :: [a] -> [a]
``` ```
#### initDef
```haskell ```haskell
initDef :: [a] -> [a] -> [a] initDef :: [a] -> [a] -> [a]
``` ```
#### lastMay
```haskell ```haskell
lastMay :: [a] -> Maybe a lastMay :: [a] -> Maybe a
``` ```
#### lastDef
```haskell ```haskell
lastDef :: a -> [a] -> a lastDef :: a -> [a] -> a
``` ```
```haskell #### drop
list :: [b] -> (a -> b) -> [a] -> [b]
```
```haskell ```haskell
drop :: Int -> [a] -> [a] drop :: Int -> [a] -> [a]
``` ```
#### take
```haskell ```haskell
take :: Int -> [a] -> [a] take :: Int -> [a] -> [a]
``` ```
@@ -51,14 +67,20 @@ take :: Int -> [a] -> [a]
Unpacking Unpacking
--------- ---------
#### uncons
```haskell ```haskell
uncons :: [a] -> Maybe (a, [a]) uncons :: [a] -> Maybe (a, [a])
``` ```
#### unsnoc
```haskell ```haskell
unsnoc :: [x] -> Maybe ([x],x) unsnoc :: [x] -> Maybe ([x],x)
``` ```
#### unsnoc
```haskell ```haskell
list :: [b] -> (a -> b) -> [a] -> [b] list :: [b] -> (a -> b) -> [a] -> [b]
``` ```
@@ -66,6 +88,8 @@ list :: [b] -> (a -> b) -> [a] -> [b]
Sorting Sorting
--------- ---------
#### sortOn
```haskell ```haskell
sortOn :: Ord o => (a -> o) -> [a] -> [a] sortOn :: Ord o => (a -> o) -> [a] -> [a]
``` ```
@@ -73,6 +97,8 @@ sortOn :: Ord o => (a -> o) -> [a] -> [a]
Removing Removing
--------- ---------
#### ordNub
```haskell ```haskell
ordNub :: Ord a => [a] -> [a] ordNub :: Ord a => [a] -> [a]
``` ```
@@ -80,14 +106,14 @@ ordNub :: Ord a => [a] -> [a]
Splitting Splitting
--------- ---------
```haskell #### splitAt
splitAt :: Int -> [a] -> ([a], [a])
```
```haskell ```haskell
splitAt :: Int -> [a] -> ([a], [a]) splitAt :: Int -> [a] -> ([a], [a])
``` ```
#### intercalate
```haskell ```haskell
intercalate :: [a] -> [[a]] -> [a] intercalate :: [a] -> [[a]] -> [a]
``` ```
@@ -95,6 +121,8 @@ intercalate :: [a] -> [[a]] -> [a]
Comparison Comparison
--------- ---------
#### isPrefixOf
```haskell ```haskell
isPrefixOf :: Eq a => [a] -> [a] -> Bool isPrefixOf :: Eq a => [a] -> [a] -> Bool
``` ```
@@ -102,10 +130,14 @@ isPrefixOf :: Eq a => [a] -> [a] -> Bool
Filtering Filtering
--------- ---------
#### filter
```haskell ```haskell
filter :: (a -> Bool) -> [a] -> [a] filter :: (a -> Bool) -> [a] -> [a]
``` ```
#### replicate
```haskell ```haskell
replicate :: Int -> a -> [a] replicate :: Int -> a -> [a]
``` ```
@@ -113,10 +145,14 @@ replicate :: Int -> a -> [a]
Indexing Indexing
-------- --------
#### atMay
```haskell ```haskell
atMay :: [a] -> Int -> Maybe a atMay :: [a] -> Int -> Maybe a
``` ```
#### atDef
```haskell ```haskell
atDef :: a -> [a] -> Int -> a atDef :: a -> [a] -> Int -> a
``` ```