Difference between revisions of "List of partial functions"
From HaskellWiki
(→List functions: Remove scanl1 and scanr1) |
m (More to do...) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
===Functions that aren't even partial=== | ===Functions that aren't even partial=== | ||
− | + | {| class="wikitable" | |
− | + | ! Function | |
+ | ! Witness | ||
+ | |- | ||
+ | | error | ||
+ | | error "x" | ||
+ | |- | ||
+ | | undefined | ||
+ | | undefined | ||
+ | |} | ||
===List functions=== | ===List functions=== | ||
− | + | {| class="wikitable" | |
− | + | ! Function | |
− | + | ! Only partial for infinite lists | |
− | + | ! Witness | |
− | + | |- | |
− | + | | maximum | |
− | + | | No | |
− | + | | maximum [] | |
− | + | |- | |
− | + | | minimum | |
− | + | | No | |
− | + | | minimum [] | |
− | + | |- | |
− | + | | head | |
− | + | | No | |
− | + | | head [] | |
− | + | |- | |
+ | | tail | ||
+ | | No | ||
+ | | tail [] | ||
+ | |- | ||
+ | | init | ||
+ | | No | ||
+ | | init [] | ||
+ | |- | ||
+ | | last | ||
+ | | No | ||
+ | | last [] | ||
+ | |- | ||
+ | | foldl | ||
+ | | Yes | ||
+ | | foldl (const (const ())) () [0..] | ||
+ | |- | ||
+ | | foldl' | ||
+ | | Yes | ||
+ | | foldl' (const (const ())) () [0..] | ||
+ | |- | ||
+ | | foldl1 | ||
+ | | No | ||
+ | | foldl1 (const (const ())) [] | ||
+ | |- | ||
+ | | foldl1' | ||
+ | | No | ||
+ | | foldl1' (const (const ())) [] | ||
+ | |- | ||
+ | | foldr1 | ||
+ | | No | ||
+ | | foldr1 (const (const ())) [] | ||
+ | |- | ||
+ | | cycle | ||
+ | | No | ||
+ | | cycle [] | ||
+ | |- | ||
+ | | !! | ||
+ | | No | ||
+ | | [] !! 0 | ||
+ | |- | ||
+ | | filter | ||
+ | | Yes | ||
+ | | filter (const False) [0..] | ||
+ | |- | ||
+ | | dropWhile | ||
+ | | Yes | ||
+ | | dropWhile (const True) [0..] | ||
+ | |- | ||
+ | | length | ||
+ | | Yes | ||
+ | | length [0..] | ||
+ | |- | ||
+ | | sum | ||
+ | | Yes | ||
+ | | sum [0..] | ||
+ | |- | ||
+ | | product | ||
+ | | Yes | ||
+ | | product [0..] | ||
+ | |- | ||
+ | | reverse | ||
+ | | Yes | ||
+ | | reverse [0..] | ||
+ | |} | ||
===Other=== | ===Other=== | ||
− | + | {| class="wikitable" | |
− | + | ! Function | |
− | + | ! Witness | |
− | + | |- | |
− | + | | read | |
− | + | | read "x" :: Int | |
− | + | |- | |
− | + | | quot | |
− | + | | 1 `quot` 0 | |
− | + | |- | |
− | + | | rem | |
− | + | | 1 `rem` 0 | |
− | + | |- | |
+ | | quotRem | ||
+ | | 1 `quotRem` 0 | ||
+ | |- | ||
+ | | div | ||
+ | | 1 `div` 0 | ||
+ | |- | ||
+ | | mod | ||
+ | | 1 `mod` 0 | ||
+ | |- | ||
+ | | divMod | ||
+ | | 1 `divMod` 0 | ||
+ | |- | ||
+ | | succ | ||
+ | | succ () | ||
+ | |- | ||
+ | | pred | ||
+ | | pred () | ||
+ | |- | ||
+ | | toEnum | ||
+ | | toEnum 1 :: () | ||
+ | |- | ||
+ | | (^) | ||
+ | | 1 ^ (-1) | ||
+ | |- | ||
+ | | fail | ||
+ | | fail "x" :: Either () () | ||
+ | |- | ||
+ | |colspan="2" | ... (todo) | ||
+ | |} | ||
==Partial functions in other base libraries== | ==Partial functions in other base libraries== | ||
Line 46: | Line 147: | ||
===Data.List=== | ===Data.List=== | ||
− | + | {| class="wikitable" | |
− | + | ! Function | |
+ | ! Only partial for infinite lists | ||
+ | ! Witness | ||
+ | |- | ||
+ | | genericIndex | ||
+ | | No | ||
+ | | genericIndex [] 0 | ||
+ | |- | ||
+ | | genericLength | ||
+ | | Yes | ||
+ | | genericLength [0..] :: Integer | ||
+ | |} | ||
===Data.Map=== | ===Data.Map=== | ||
− | + | {| class="wikitable" | |
+ | ! Function | ||
+ | ! Witness | ||
+ | |- | ||
+ | | (!) | ||
+ | | Map.empty ! () | ||
+ | |} | ||
===Data.Maybe=== | ===Data.Maybe=== | ||
− | + | {| class="wikitable" | |
+ | ! Function | ||
+ | ! Witness | ||
+ | |- | ||
+ | | fromJust | ||
+ | | fromJust Nothing | ||
+ | |} | ||
==Partial functions in other Haskell Platform packages== | ==Partial functions in other Haskell Platform packages== | ||
− | ... (todo) | + | {| class="wikitable" |
+ | ! Function | ||
+ | ! Witness | ||
+ | |- | ||
+ | |colspan="2" | ... (todo) | ||
+ | |} | ||
− | + | [[Category:Pages under construction]] |
Latest revision as of 04:31, 26 April 2021
Contents
Partial functions in Prelude
Functions that aren't even partial
Function | Witness |
---|---|
error | error "x" |
undefined | undefined |
List functions
Function | Only partial for infinite lists | Witness |
---|---|---|
maximum | No | maximum [] |
minimum | No | minimum [] |
head | No | head [] |
tail | No | tail [] |
init | No | init [] |
last | No | last [] |
foldl | Yes | foldl (const (const ())) () [0..] |
foldl' | Yes | foldl' (const (const ())) () [0..] |
foldl1 | No | foldl1 (const (const ())) [] |
foldl1' | No | foldl1' (const (const ())) [] |
foldr1 | No | foldr1 (const (const ())) [] |
cycle | No | cycle [] |
!! | No | [] !! 0 |
filter | Yes | filter (const False) [0..] |
dropWhile | Yes | dropWhile (const True) [0..] |
length | Yes | length [0..] |
sum | Yes | sum [0..] |
product | Yes | product [0..] |
reverse | Yes | reverse [0..] |
Other
Function | Witness |
---|---|
read | read "x" :: Int |
quot | 1 `quot` 0 |
rem | 1 `rem` 0 |
quotRem | 1 `quotRem` 0 |
div | 1 `div` 0 |
mod | 1 `mod` 0 |
divMod | 1 `divMod` 0 |
succ | succ () |
pred | pred () |
toEnum | toEnum 1 :: () |
(^) | 1 ^ (-1) |
fail | fail "x" :: Either () () |
... (todo) |
Partial functions in other base libraries
Data.List
Function | Only partial for infinite lists | Witness |
---|---|---|
genericIndex | No | genericIndex [] 0 |
genericLength | Yes | genericLength [0..] :: Integer |
Data.Map
Function | Witness |
---|---|
(!) | Map.empty ! () |
Data.Maybe
Function | Witness |
---|---|
fromJust | fromJust Nothing |
Partial functions in other Haskell Platform packages
Function | Witness |
---|---|
... (todo) |