Difference between revisions of "List of partial functions"
Jump to navigation
Jump to search
(→Partial functions in Prelude: Added new section for functions that aren't even partial) |
m (More to do...) |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 3: | Line 3: | ||
===Functions that aren't even partial=== |
===Functions that aren't even partial=== |
||
+ | {| class="wikitable" |
||
− | * error |
||
+ | ! Function |
||
− | * undefined |
||
+ | ! Witness |
||
+ | |- |
||
+ | | error |
||
+ | | error "x" |
||
+ | |- |
||
+ | | undefined |
||
+ | | undefined |
||
+ | |} |
||
===List functions=== |
===List functions=== |
||
+ | {| class="wikitable" |
||
− | * maximum |
||
+ | ! Function |
||
− | * minimum |
||
+ | ! Only partial for infinite lists |
||
− | * head |
||
+ | ! Witness |
||
− | * tail |
||
+ | |- |
||
− | * init |
||
+ | | maximum |
||
− | * last |
||
+ | | No |
||
− | * foldl |
||
+ | | maximum [] |
||
− | * foldl' |
||
+ | |- |
||
− | * foldl1 |
||
+ | | minimum |
||
− | * foldl1' |
||
+ | | No |
||
− | * foldr1 |
||
+ | | minimum [] |
||
− | * scanl1 |
||
+ | |- |
||
− | * scanr1 |
||
+ | | head |
||
− | * cycle |
||
− | + | | No |
|
+ | | head [] |
||
− | * length |
||
+ | |- |
||
− | * sum |
||
+ | | tail |
||
− | * product |
||
+ | | No |
||
− | * reverse |
||
+ | | tail [] |
||
− | * ... (todo) |
||
+ | |- |
||
+ | | 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" |
||
− | * read |
||
+ | ! Function |
||
− | * quot |
||
+ | ! Witness |
||
− | * rem |
||
+ | |- |
||
− | * quotRem |
||
+ | | read |
||
− | * div |
||
+ | | read "x" :: Int |
||
− | * mod |
||
+ | |- |
||
− | * divMod |
||
+ | | quot |
||
− | * succ |
||
+ | | 1 `quot` 0 |
||
− | * pred |
||
+ | |- |
||
− | * toEnum |
||
+ | | rem |
||
− | * (^) |
||
+ | | 1 `rem` 0 |
||
− | * fail |
||
+ | |- |
||
− | * ... (todo) |
||
+ | | 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 49: | Line 147: | ||
===Data.List=== |
===Data.List=== |
||
+ | {| class="wikitable" |
||
− | * genericIndex |
||
+ | ! Function |
||
− | * genericLength |
||
+ | ! 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" |
||
− | * fromJust |
||
+ | ! Function |
||
+ | ! Witness |
||
+ | |- |
||
+ | | fromJust |
||
+ | | fromJust Nothing |
||
+ | |} |
||
==Partial functions in other Haskell Platform packages== |
==Partial functions in other Haskell Platform packages== |
||
+ | {| class="wikitable" |
||
− | ... (todo) |
||
+ | ! Function |
||
+ | ! Witness |
||
+ | |- |
||
+ | |colspan="2" | ... (todo) |
||
+ | |} |
||
+ | |||
+ | [[Category:Pages under construction]] |
Latest revision as of 04:31, 26 April 2021
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) |