List of partial functions
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) |