FP

Pre vonkajšiu redukciu zľava platí, že:
Nemusí priviesť výraz do kanonickej formy, ani ak takáto forma pre výraz existuje
Vždy privedie výraz do kanonickej formy ak takáto forma pre výraz existuje
Nazýva sa tiež normálnym poradím redukcie
Zodpovedá výpočtu na základe hodnoty (eager evaluation)
Zodpovedá výpočtu na základe požiadavky (lazy evaluation)
Vyberte vlastnosti funkcionalneho programovania.
Výpočet je definovaný nad nemennými hodnotami.
Premenné reprezentujú pamäťové bunky, ktorých hodnota sa môže menit
Program je definovaný ako výrazy pre výpočet hodnoty na základe vstupov
Program je definovaný ako postupnosť prikazov.
Pre funkcionálne rozhranie v jazyku Java platí:
Iba objekty typu implementujúceho funkcionálne rozhranie môžu byť vyjadrené pomoc lambdy.
Je to iba rozhranie, ktore dedi od rozhrania Functional.
Je to rozhranie, ktoré má práve jednu abstraktnú metódu.
Je to rozhranie, ktoré má práve jednu metódu.
A
B
C
D
A
B
C
D
Čo v jazyku lambda označujeme ako kombinátor?
Výraz lambda, ktorý je kombináciou iných výrazov lambda.
Forme. normálnej v je ktorý lambda, Výraz
Výraz lambda, ktorý neobsahuje žiadne viazané premenné.
Výraz lambda, ktorý neobsahuje žiadne voľné premenné.
Data T a = Tip a | Bin (T a) (T a)
Data T = Tip a | Bin T T
Data T = Tip | Bin T T
Typovú definíciu funkcie uvádzame za účelom:
Dokumentácie použitia funkcie
Rozšírenia oblasti hodnôt, na ktoré je možné ju aplikovať.
Zuženia oblasti hodnôt, na ktoré je možné ju aplikovať
Neuvadzáme nikdy
Ktorý spôsob redukcie výrazu sa označuje ako normálne poradie redukcie?
Vnútorná redukcia zľava
Vonkajšia redukcia zľava
Vonkajšia redukcia sprava
Vnútorná redukcia sprava
Vyberte správne tvrdenia o operátore >>=
Operátor >>= je definovaný v typovej triede IO.
Operátor >>= umožňuje spojiť dve operácie produkujúce monadickú hodnotu.
Operátor >>= je definovaný v typovej triede Monad.
Operátor >>= sa týka iba operáci­ vstupu a výstupu.
Operátor >>= spr­stupňuje hodnotu z monadického typu.
Operátor >>= určuje poradie vykonávania dvoch operáci­ ľubovoľného typu.
Májme funkciu squares, ktorej parametrom je zoznam čísel a výsledkom zoznam druhých mocnín týchto čísel. Aký je najvšeobecnejší typ funkcie?
Squares :: [Double] -> [Double]
Squares :: [a] -> [b]
Squares :: [Int] -> [Int]
Squares :: Num a => [a] -> [a]
Squares :: [Num] -> [Num]
Squares :: [a] -> [a]
Získa výšku stromu
Získá počet vrcholov binárneho stromu
Získá celkový počet uzlov binárneho stromu
Vyberte funkcie implementované vo funkcionálnom štýle.
Function countEven(numbers) { return length(filter(even, numbers)); }
Function countEven(numbers) { let count = 0; for (let I = 0; I < length(numbers); i++) { if (even(numbers[i])) count++; } return count; }
Function countEven(numbers) { let count = numbers.stream() .filter(even) .count(); return count; }
Function countEven(numbers) { return numbers.filter(even).length; }
Function countEven(numbers) { let count = 0; numbers.each(function () { if (even(numbers[i])) count++; }); return count; }
Funkcia f definovaná nasledovne: f a b = [x | x<-b, x /= a]
Je svojím významom funkciou filter.
Odstráni zo zoznamu b všetky prvky rôzne od prvku a.
Odstráni všetky výskyty prvku a zo zoznamu b.
Ako v Churchovom kódovaní vyjadrimé číslo 3 pomocou výrazu lambda?
λx. X x x
λf. λx. f (f (f x))
λx. 3
λy. λz. z
Aké podmienky platia pre použitie zámen alfa, beta a eta pre výrazy lambda?
Zámeny sa musia týkať iba voľných premenných.
Výraz musí byť v normálnej forme.
Zámeny sa nemôžu týkať viazaných premenných.
Zámeny sa nemôžu týkať voľných premenných.
Ak výraz obsahuje voľné premenné, tie musia po zámene zostať voľnými.
Vyberte vlastnosti funkcionálneho programovania.
Výpočet je definovaný nad nemennými hodnotami.
Premenné reprezentujú pamäťové bunky, ktorých hodnota sa môže meniť.
Program je definovaný ako výrazy pre výpočet hodnoty na základe vstupov.
Program je definovaný ako postupnosť príkazov.
Máme funkciu f :: [a] -> Int -> [a] Aký typ má výraz f [5, 3, 1]?
[5, 3, 1] -> Int -> [a]
Nie je to platný výraz
[a]
[a] -> Int -> [a]
Int -> [a]
[a] -> [a]
Funkcia f v tvare: f (Leaf x) = [x] f (Node t1 t2) = f t1 ++ f t2
Transformuje strom na zoznam hodnôt.
Získá celkový počet uzlov binárneho stromu.
Vypočíta veľkosť binárneho stromu.
Májme funkciu max3, ktorá vráti najväčš­ z 3 parametrov. Parametre môžu byť ľubovoľného typu, hodnoty ktorého je možné porovnávať operátorom >. Aký je typ funkcie?
Max3 :: Int -> Int -> Int -> Int
Max3 :: Int a => a -> a -> a -> a
Max3 :: Ord a => a -> b -> c -> d
Max3 :: Ord a => a -> a -> a -> a
Max3 :: Ord -> Ord -> Ord -> Ord
Vyberte správne realizácie funkcie faktoriál v jazyku Haskell.
Factorial n | n == 0 = 1 | n > 0 = n * factorial n-1
Factorial 0 = 1 factorial n = n * factorial (n-1)
Factorial n | n == 0 = 1 | otherwise = n * factorial n-1
Factorial n | n == 0 = 1 | n > 0 = n * factorial (n-1)
Vyberte 4 základné formy výrazov lambda (name je názov premennej a expression je nejaký výraz lambda)
λ
Expression λ name
Name
Name = expression
(expression)
λ name . expression
Expression -> expression
Expression expression
Funkcia f definovaná nasledovne f a b = [ x | x <- b, a x ]
Dropwhile
Filter
Takewhile
Nech funkcia max je definovaná nasledovne max x y = if x <= y then y else x Uveďte nasledujúci krok vnútornej redukcie zľava výrazu (ekvivalentnú formu po aplikovan­ jedného kroku redukcie): max (4 * 10) (1 + 1)
Max (4 * 10) 2
If (4 * 10) <= (1 + 1) then (1 + 1) else (4 * 10)
4 * 10
Max 40 (1 + 1)
{"name":"FP", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Pre vonkajšiu redukciu zľava platí, že:, Vyberte vlastnosti funkcionalneho programovania., Pre funkcionálne rozhranie v jazyku Java platí:","img":"https://www.quiz-maker.com/3012/CDN/97-4763330/screenshot-2024-01-07-181243.png?sz=1200"}
Powered by: Quiz Maker