zoznamy, λ-kalkul, funkcie Flashcards
Co robi concat?
[[a]] -> [a] – zlúči zoznam zoznamov
Ake funkcie mame na sumu/product numerickych zoznamov?
sum,product
Co robi take a drop?
Take vezme n zo zoznamu a drop necha n
Co robi takewhile/dropwhile?
Take alebo drop ale s nie fixnym cislom ale s funkciou
ako zistim ci je prvok v zozname?
elem
Co robi lookup?
Eq a => a -> [(a, b)] -> Maybe b
Opis λ-term
slide 3
Opis vazbu premennych
slide 3
Co je to kombinator?
λ-term bez voľných premenných
Ake pozname kombinatory
ISK
slide 3
Opis beta-redukciu
slide 4
Co je to redukovatelny vyraz?
(skrátene redex) je ľubovoľný výraz na ktorý sa dá priamo aplikovať β-redukcia.
Kedy je vyraz v normalnej forme?
neobsahuje žiadny redex.
Ake pozname poradie redukovania v lambda kalkule?
slide 5
volanie hodnotou (call-by-value, leftmost innermost)
volanie menom (call-by-name, leftmost outermost, delayed)
volanie nutnosťou (call-by-need, left. outer. + memo., lazy)
Zalezi na poradi redukovania v lambda kalkule?
nie, ak skončia, tak vedú vždy k tej istej normálnej forme
Co je to alfa konverzia?
λx.M→ λy.M[x→ y], ak y nie je voľné v M
premenovanie viazanej premennej
Co je to η-redukcia?
λx.Mx→ M, ak x nie je voľné v M
odstraňuje zbytočnú λ-abstrakciu
Co je to currying?
technika transformovania n-árnej funkcie na postupnosť unárnych
lebo všetky funkcie sú unárne
Ake pozname 2 typy funkcii?
Anonymná funkcia (λ je nahradená symbolom )
Pomenovaná funkcia
Aka je v haskelli asociativity aplikacie funkcie?
zľava asociatívna
* f x y z≡((f x) y) z
Co robi $?
menej zatvoriek treba
Cim skladame funkcie?
bodkou
ake su take identicke funkcie?
id - identita
const - konstantna
Ako to funguje ked ma haskell len unarne funkcie?
N-arna funkcia vracia vzdy n-1-arnu funkciu
Co robi curry?
curry f – funkcia f na dvojiciach „curried“ funkcia
uncurry f – „curried“ funkcia f funkcia na dvojiciach
Co robi flip?
prehodenia poradia prvých dvoch argumentov f
Co robi curry id?
Vytvori dvojicu