1/54
Funcprog, ElteIK, elte
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Az alábbi állítások közül melyik igaz a Haskell nyelvre?
a) Haskellben kötelező megadni minden kifejezés típusát.
b) Haskellben nem lehet operátorokat definiálni, csak a beépítetteket lehet használni.
c) A Haskell egy szigorú kiértékelésű, tisztán funkcionális nyelv.
d) A Haskell egy lusta kiértékelésű, tisztán funkcionális nyelv.
d) A Haskell egy lusta kiértékelésű, tisztán funkcionális nyelv.
Melyik függvény definíciója totális (nem parciális) az alábbiak közül?
a) tail
b) init
c) last
d) take
d) take
Melyik állítás hamis az alábbiak közül?
a) Ha egy függvény rekurzív, közvetve vagy közvetlenül magára hivatkozik.
b) A foldr rekurzívan definiált függvény.
c) Egy rekurzív függvénynek tetszőleges számú paramétere lehet.
d) Minden rekurzív függvénynek meg kell adni legalább egy alapesetet.
d) Minden rekurzív függvénynek meg kell adni legalább egy alapesetet.
Mi igaz a lambda függvényekre Haskellben?
a) Új típus bevezetésével definiálhatók.
b) Magasabbrendű függvényeknek adhatók paraméterként.
c) A kompozíciós műveletek egy másik elnevezése.
d) A lambda kifejezéseknek nem vezethető le vagy adható meg a típusa.
b) Magasabbrendű függvényeknek adhatók paraméterként.
Melyik típusosztály?
a) Int
b) Bool
c) Integral
d) Double
c) Integral
Melyik kifejezés helyes nyelvtanilag az alábbiak közül?
a) `8` mod `5`
b) 3`mod`5
c) 6 (mod) 6
d) (1) mod (7)
b) 3 `mod` 5
Mi a 1 < (1,2) kifejezés eredménye?
a) Fordítási idejű hiba.
b) True
c) False
d) Futási idejű hiba.
a) Fordítási idejű hiba.
Mit nevezünk részleges függvényalkalmazásnak?
a) Amikor egy parciális függvényt egy olyan paraméterre hívunk meg, amire nem lett definiálva.
b) Amikor egy függvényt átadunk paraméterül egy másiknak.
c) Amikor egy függvény önmagára hivatkozik, hogy egy részfeladatot megoldjon.
d) Amikor egy n darab paraméterrel rendelkező függvénynek kevesebb, mint n paramétert adunk át.
d) Amikor egy n darab paraméterrel rendelkező függvénynek kevesebb, mint n paramétert adunk át.
Mikor mondjuk egy programozási nyelvről, hogy tisztán funkcionális?
a) Ha magasabbrendű függvények használhatók benne.
b) Ha nincsenek mellékhatások.
c) Ha megtalálható benne a Curry-módszer.
d) Ha lusta kiértékelésű
b) Ha nincsenek mellékhatások.
Melyik lehet a map (even . (+1)) kifejezés típusa?
a) Integral a => (a -> a) -> [a] -> [a]
b) Integral a => [a] -> [Bool]
c) Integral a => [a] -> [a]
d) [a] -> [Bool]
b) Integral a => [a] -> [Bool]
Az alábbi kifejezések közül melyik ekvivalens az [f x | x <- ls] kifejezéssel véges, hiba nélkül kiértékelhető ls lista esetén?
a) foldr f [] ls
b) map f ls
c) filter f ls
d) any f ls
b) map f ls
Mi a (\x -> x:[x]) kifejezés típusa?
a) a -> [[a]]
b) a -> a
c) a -> [a]
d) [a] -> a
c) a -> [a]
Mi az eredménye a length []:[] kifejezésnek?
a) 0
b) [0]
c) Fordítás idejű hiba
d) Futás idejű hiba
b) [0]
Mi a különbség az _ és x minták közt?
a) Az x csak a lista fejelemeként, az _ pedig bárhol használható a mintában.
b) Az _ akkor használandó, ha a típus deklarációban adott típusoktól eltérő értékeket is kezelni szeretnénk.
c) Egy mintában az _ többször is szerepelhet, míg az x legfeljebb egyszer.
d) Egy mintában az _ többször is szerepelhet, a függvény törzsében véletlenszerű értéket képvisel.
c) Egy mintában az _ többször is szerepelhet, míg az x legfeljebb egyszer.
Mit jelent az (xs:x:y) minta?
a) Tetszőleges listára illeszkedik.
b) Egy legalább kételemű listára illeszkedik.
c) Pontosan három elemből álló listára illeszkedik.
d) Legalább kételemű lista, melynek utolsó két eleme lesz az x és y.
b) Egy legalább kételemű listára illeszkedik.
Melyik kifejezésre illeszkedik a []:x minta?
a) [[1], [2]]
b) [[]]
c) []
d) [[1,2]]
b) [[]]
Mi az eredménye az alábbi kifejezésnek?
filter (== 2) ([1..] ++ [1,2])
a) [2,2]
b) Kiír egy kettest, majd végtelen ideig fut.
c) Fordítási idejű hiba.
d) Nem áll le, nem ír ki semmit.
b) Kiír egy kettest, majd végtelen ideig fut.
Melyik állítás igaz Haskellben a listákra?
a) A listák heterogének, azaz különböző típusú elemekből is állhatnak.
b) A listák homogének, azaz kizárólag azonos típusú elemekből állhatnak.
c) A listák mindenképpen véges hosszúak.
d) Minden listát csak egyféleképpen lehet megkonstruálni, a (:) operátorral.
b) A listák homogének, azaz kizárólag azonos típusú elemekből állhatnak.
Az alábbiak közül melyik NEM lehet a Just "true" kifejezés típusa?
a) Maybe [Char]
b) Maybe String
c) Maybe Bool
d) A fentiek közül bármelyik lehet
c) Maybe Bool
Tekintsük az alábbi definíciót! Mi a B 42 kifejezés típusa?
data D = A Int | B Int [Char]
a) D
b) String -> D
c) B Int
d) D -> String
b) String -> D
Melyik helyes kifejezés?
a) 6 div 3
b) 6 `div` 3
c) 6 (div) 3
d) (6) div (3)
b) 6 `div` 3
Melyik helyes kifejezés, ha f :: Int -> Int -> String -> Bool?
a) f (1 2 "str") || True
b) f (1 2 "str" || True)
c) (f 1 2 "str") || True
d) f(1,2,"str") || True
c) (f 1 2 "str") || True
Melyik állítás hamis az alábbiak közül? f ([a]:[b]) f (a:b:[]) f ((a:[]):b:[])
a) Az 1. és 3. minták ugyanarra illeszkednek
b) Amire illeszkedik az 1. minta, arra illeszkedik a 2. minta is
c) Amire illeszkedik az 2. minta, arra illeszkedik a 3. minta is
d) A minták közül legalább egy illeszkedik a(z) [[],[]] értékre
c) Amire illeszkedik az 2. minta, arra illeszkedik a 3. minta is
Melyik kifejezés nem lista típusú?
a) ([[1,2],[]])
b) [(1,2),(3,4)]
c) ([1,2]:[])
d) ([1,2],[])
d) ([1,2],[])
Mi az eredménye a következő kifejezésnek: head [1,2,3] == take 1 [3,2,1]
a) True
b) False
c) Fordítási idejű hiba
d) Futási idejű hiba
c) Fordítási idejű hiba
Melyik sor hagyható el a függvényből úgy, hogy működése változatlan maradjon?
f [x,y] = x min y
f [x] = x
f (x:rest) = x min f rest
a) Az első
b) A második
c) A harmadik
d) Egyik sem
a) Az első
Mi lehet a típusa az alábbi kifejezésnek? map (filter (\x -> x))
a) [a] -> [a]
b) [Bool] -> [Bool]
c) [[a]] -> [[a]]
d) [[Bool]] -> [[Bool]]
d) [[Bool]] -> [[Bool]]
Mi lehet a típusa az alábbi függvénynek?
f (x,xs) = init x
f _ = "default"
a) f :: [a] -> String
b) f :: [String] -> String
c) f :: (a,b) -> String
d) f :: ([Char],a) -> [Char]
d) f :: ([Char],a) -> [Char]
Mi a típusa az alábbi függvénynek?
f [] = []
f [x] = [x]
f [x:xs] = [xs]
a) f :: [a] -> [a]
b) f :: [[a]] -> [a]
c) f :: [a] -> [[a]]
d) f :: [[a]] -> [[a]]
d) f :: [[a]] -> [[a]]
Mi az eredménye a következő kifejezésnek: zip [1..] "almafa"
a) Nem áll le, nem ír ki semmit
b) Nem áll le, végtelen eredményt ad
c) Véges eredménnyel leáll
d) Fordítási hiba
c) Véges eredménnyel leáll
Mi igaz a foldl (++) x ls és foldr (++) x ls kifejezésekre?
a) Eredményük és futási költségük mindenképp azonos
b) Eredményük és futási költségük azonos, ha ls véges és kiértékelhető
c) Csak az egyik lehet típushelyes
d) Típushelyesek, de eredményük vagy futási költségük eltérő lehet
d) Típushelyesek, de eredményük vagy futási költségük eltérő lehet
Melyik kifejezés hoz létre helyes T típusú értéket, ha data T = A Int Bool | B String | C
a) A "almafa"
b) A True 3
c) B 3
d) C
d) C
Az alábbi függvények közül melyik ad-hoc polimorf (azaz "esetlegesen" polimorf)?
a) f :: a -> (a, [a])
b) g :: a -> Maybe a
c) h :: Eq a => a -> a -> a -> Bool
d) I :: a -> b -> c -> d -> ((a,b), (c,d))
c) h :: Eq a => a -> a -> a -> Bool
Melyik kifejezés típushelyes? (1 + 2.1) :: Double vagy (1 :: Int) + 2.1) :: Double
a) Az első.
b) A második.
c) Egyik kifejezés se típushelyes.
d) Mindkettő.
a) Az első.
Melyik állítás teljesül a reverse függvényre?
(Megjegyzés: Ha mindkét kifejezés futási idejű hibát okoz, az megegyyező eredményként van értelmezve.)
a) reverse a ++ reverse b == reverse (a ++ b)
b) reverse (a:b) == b ++ [a]
c) reverse (a ++ b) == b ++ a
d) head (reverse a) == last a
d) head (reverse a) == last a
Melyik típusosztály?
a) Char
b) Bool
c) Integer
d) Num
d) Num
Mi az (\x -> head (snd x)) kifejezés típusa?
a) (a, [b]) -> b
b) ([a], b) -> a
c) (a, (b,c)) -> b
d) ((a,b),c) -> a
a) (a, [b]) -> b
Mi a (\x y -> map y x) kifejezés típusa?
a) [a] -> (a -> b) -> [b]
b) (a -> b) -> [a] -> [b]
c) ([a] -> [b]) -> ([b] -> [a])
d) (a -> b) -> [b] -> [a]
a) [a] -> (a -> b) -> [b]
Legyen f x = take 1 (drop 1 x) és g x = drop 1 (take 2 x).
Minden bemenetre ugyanazt adja a két függvény?
a) Igen, bármely x esetén f x és g x megegyezik.
b) Nem, mert van olyan x amelyre az egyik függvény futási idejű hibával leáll, de a másik nem.
c) Nem, mert van olyan x, amire különböző eredményt adnak.
d) Nem, minden listára különböző eredményt adnak.
a) Igen, bármely x esetén f x és g x megegyezik.
Melyik minta illeszkedik a ((1,10):(3,8):[]) kifejezésre?
a) (x:(2,9)::[])
b) [(x,y)]
c) ((1,x):(_,8):_)
d) (x:[])
c) ((1,x):(_,8):_)
Mi lesz az alábbi kifejezés értéke?
head map (\x -> x^3) [0, 2]
a) Futási idejű hibát kapunk.
b) 0
c) 8
d) Fordítási idejű hibát kapunk
d) Fordítási idejű hibát kapunk
Mi lehet a Just (Nothing, Nothing) kifejezés típusa az alábbiak közül?
a) Maybe [a]
b) Maybe (Maybe (a,b))
c) Maybe (a -> b)
d) Maybe (Maybe a, Maybe b)
d) Maybe (Maybe a, Maybe b)
Mi a (1,2) < (1,2,4)
a) Fordítási idejű hiba.
b) True
c) False
d) Futási idejű hiba.
a) Fordítási idejű hiba.
Adott data T a = P [(a,a)] | L [a] mellett mi az L [('a', 'b')] kifejezés típusa?
a) T Char
b) T (Char, Char)
c) T [(Char, Char)]
d) T [Char]
b) T (Char, Char)
Melyik kifejezés azonos a foldr f e [1..4] kifejezéssel
a) 1 f (2 f (3 f (4 f e)))
b) (((e f 1) f 2) f 3) f 4
c) e f (1 f (2 f (3 f 4)))
d) (((1 f 2) f 3) f 4) f e
a) 1 f (2 f (3 f (4 f e)))
Melyik állítás igaz az algebrai adattípusokra?
a) A definícióban csak egy konstruktor lehet.
b) Nem lehetnek rekurzívak.
c) Nem lehet típus paraméterük.
d) Az adatkonstruktorok nevének nagybetűvel kell kezdődniük.
d) Az adatkonstruktorok nevének nagybetűvel kell kezdődniük.
Adott az f függvény:
f :: Int -> [Int]
f x
| even x = replicate x 3
| otherwise = replicate x x
Hány olyan x egész van amelyre length (f x) == 3?
a) 0
b) 1
c) 2
d) Végtelen sok.
b) 1
Mi az (\x -> zip x (tail x)) [1] kifejezése értéke?
a) [(1,1)]
b) Futási idejű hiba.
c) []
d) [(1,1),(1,1)]
c) []
Melyik függvény alkamazásának kiértékelése áll több lépésből egy tetszőleges véges lista esetén?
a) init :: [a] -> [a]
b) (:) :: a -> [a] -> [a]
c) tail :: [a] -> [a]
d) null :: [a] -> Bool
a) init :: [a] -> [a]
Mi a kapcsolat a String és [Char] típusok közt Haskellben?
a) A String a [Char] típus egy másik elnevezése.
b) A String karaktertömböt jelent, a [Char] pedig karakterek listáját.
c) A String a [Char] egy specializációja, véges sorozatokat jelöl.
d) A String típusú elemeket [Char] típusú elemekből hozunk létre.
a) A String a [Char] típus egy másik elnevezése.
Melyik kifejezés típusozható az alábbiak közül?
a) length [] ++ [1]
b) length "valami" / 2
c) take 1
d) A felsoroltak egyike sem.
c) take 1
Mi a foldr függvény típusa?
a) (a -> b -> b) -> b -> [a] -> b
b) (b -> a -> b) -> b -> [a] -> b
c) (b -> a -> b) -> b -> [a] -> [b]
d) (a -> b -> b) -> b -> [a] -> [b]
a) (a -> b -> b) -> b -> [a] -> b
Az alábbi definíciók közül melyik ad meg totális függvényt?
a) f (x,_) = x
b) f (x:) = x
c) f (x:[]) = x
d) f (x,[]) = x
a) f (x,_) = x
Mi lehet a Just (Just 'e') kifejezés típusa az alábbiak közül?
a) Maybe String
b) Maybe (Maybe Char)
c) Maybe (a -> a)
d) Maybe (Char -> Maybe Char)
b) Maybe (Maybe Char)