The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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)
|