Haskell cheatsheet
[Edit]Aritmetika
div :: Integral a ⇒ a → a → a | div dělenec dělitel dělenec `div` dělitel |
dělení |
mod :: Integral a ⇒ a → a → a | mod modulený modulitel modulený `mod` modulitel |
modulo |
+ :: Num a ⇒ a → a → a | prvníSčítanec + druhýSčítanec (+) prvníSčítanec druhýSčítanec |
sčítání |
- :: Num a ⇒ a → a → a | menšenec - menšitel (-) menšenec menšitel |
odčítání |
* :: Num a ⇒ a → a → a | prvníČinitel * druhýČinitel (*) prvníČinitel druhýČinitel |
násobení |
max :: Ord a ⇒ a → a → a | max prvníČíslo druhéČíslo prvníČíslo `max` druhéČíslo |
maximum ze dvou čísel |
min :: Ord a ⇒ a → a → a | min prvníČíslo druhéČíslo prvníČíslo `max` druhéČíslo |
minimum ze dvou čísel |
Aritmetika na seznamech
sum :: (Num a) ⇒ [a] → a | sum seznam |
suma všech prvků v seznamu |
product :: (Num a) ⇒ [a] → a | product seznam |
produkt všech prvků v seznamu |
maximum :: (Ord a) ⇒ [a] → a | maximum seznam |
maximum ze seznamu |
minimum :: (Ord a) ⇒ [a] → a | minimum seznam |
minimum ze seznamu |
and :: [Bool] → Bool | and seznam |
vrátí True pokud všechny prvky seznamu jsou True |
or :: [Bool] → Bool | or seznam |
vrátí True pokud alespoň jeden prvek ze seznamu je True |
Logika
< :: Ord a ⇒ a → a → Bool | prvníČíslo < druhéČíslo (<) prvníČíslo druhéČíslo |
menší než |
<= :: Ord a ⇒ a → a → Bool | prvníČíslo <= druhéČíslo (<=) prvníČíslo druhéČíslo |
menší rovno |
> :: Ord a ⇒ a → a → Bool | prvníČíslo > druhéČíslo (>) prvníČíslo druhéČíslo |
větší než |
>= :: Ord a ⇒ a → a → Bool | prvníČíslo >= druhéČíslo (>=) prvníČíslo druhéČíslo |
větší rovno |
== :: Ord a ⇒ a → a → Bool | a == b (==) a b |
rovná se |
/= :: Ord a ⇒ a → a → Bool | a /= b (/=) a b |
nerovná se |
&& :: Bool → Bool → Bool | a && b (&&) a b |
logické a |
|| :: Bool → Bool → Bool | a || b (||) a b |
logické nebo |
even :: Integral a ⇒ a → Bool | even číslo |
je sudé |
odd :: Integral a ⇒ a → Bool | odd číslo |
je liché |
Logika na seznamech
fst :: (a,b) → a | fst dvojice |
vrátí první prvek z dvojice |
snd :: (a,b) → a | snd dvojice |
vrátí druhý prvek z dvojice |
all :: (a → Bool) → [a] → Bool | all funkcePodmínka seznam |
vrátí True pokud pro všechny prvky seznamu vrátí funkcePodmínka True (all odd [1,3..100] = True ) |
any :: (a → Bool) → [a] → Bool | any funkcePodmínka seznam |
vrátí True pokud pro alespoň jeden prvek v seznamu vrátí funkcePodmínka True (any even [1..100] = True ) |
Operace se seznamy
reverse :: [a] → [a] | reverse seznam reverse string |
vrátí seznam v opačném pořadí |
concat :: [[a]] → [a] | concat seznamSeznamu concat seznamStringů |
slepí seznamy v seznamu do jednoho seznamu |
++ :: [a] → [a] → [a] | prvníSeznam ++ druhýSeznam prvníString ++ druhýString |
připojí druhýSeznam za prvníSeznam |
!! :: [a] → Int → a | seznam !! n |
vrátí n -tý prvek seznamu |
length :: [a] → Int | length seznam |
vrátí počet prvků v seznamu |
head :: [a] → a | head seznam |
vrátí první prvek seznamu (nefunguje na prázdných seznamech) |
tail :: [a] → [a] | tail seznam |
vrátí seznam bez prvního prvku (nefunguje na prázdných seznamech) |
init :: [a] → [a] | init seznam |
vrátí seznam bez posledního prvku (nefunguje na prázdných seznamech) |
last :: [a] → a | last seznam |
vrátí poslední prvek v seznamu (nefunguje na prázdných seznamech) |
null :: [a] → Bool | null seznam |
vrátí True pokud je seznam prázdný |
id :: a → a | id a |
identita = vrátí to co dostane |
replicate :: Int → a → [a] | replicate n prvek |
vrátí seznam obsahující prvek n krát |
Řazení seznamů
compare :: Ord a ⇒ a → a → Ordering | compare a b |
vrátí výsledek porovnání a a b |
sort :: (Ord a) ⇒ [a] → [a] | sort seznam |
seřadí seznam |
sortBy :: (a → a → Ordering) → [a] → [a] | sortBy funkceCoPorovnává seznam |
setřídí seznam podle funkceCoPorovnává |
sortOn :: Ord b ⇒ (a → b) → [a] → [a] | sortOn převodníFunkce seznam |
seřadí seznam podle porovnání výsledků převodníFunkce |
Další funkce
takeWhile :: (a→Bool) → [a] → [a] | takeWhile funkcePodminka seznam |
Vrátí seznam prvků, které se nachází na začátku seznamu seznam a funkcePodminka na ně vrací True |
dropWhile :: (a→Bool) → [a] → [a] | dropWhile funkcepodminka senznam |
Vrátí doplněk výstupu takeWhile se stejnými parametry |
zip :: [a] → [b] → [(a,b)] | zip prvníSeznam druhýSeznam |
Vrátí seznam dvojic (tuplů), kde je společně n-tý prvek prvníSeznam a n-tý prvek z druhýSeznam |
zipWith :: (a → b → c) → [a] → [b] → [c] | zip funkce prvníSeznam druhýSeznam |
Vrátí seznam, jehož prvky jsou výstupy funkce jejíž paramtery byli n-té prvky seznamů prvníSeznam a druhýSeznam |
take 3 “abcde” = “abc” | take n senzam |
vrátí seznam obsahující prvních n prvků ze seznam |
drop :: Int → [a] → [a] | drop n seznam |
vrátí seznam bez prvních n prvků |
splitAt :: Int → [a] → ([a], [a]) | splitAt n seznam |
vrátí dvojici seznamů a a b , kdy a obsahuje prvních n prvků ze seznam a b je deplněk a na seznam |
elem :: (Eq a) ⇒ a → [a] → Bool | elem a seznam |
vrátí True pokud se prvek nachází v seznamu |
Důležité funkce vyššího řádu
map :: (a → b) → [a] → [b] | map funkce seznam |
vrátí seznam výstupů funkce funkce pro jednotlivé prvky v seznam |
foldr :: (a → b → b) → b → [a] → b | foldr funkce akumulátor seznam |
projde všechny prvky v seznamu seznam zleva do prava aplikuje na ně funkci funkce a vrátí výsledek |
scanr :: (a → b → b) → b → [a] → [b] | ? |
foldr, co vrací seznam všech mezivýsledků |
filter :: (a → Bool) → [a] → [a] | filter funkcePodminka seznam |
vrátí seznam obsahující prvky z seznam pro které funkcepodmínka vrátila True |
foldl :: (a → b → a) → a → [b] → a | foldl funkce akumulátor seznam |
projde všechny prvky v seznamu seznam zprava doleva aplikuje na ně funkci funkce a vrátí výsledek |
scanl :: (b → a → b) → b → [a] → [b] | ? |
foldl, co vrací seznam všech mezivýsledků |