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ů |