Add meg egy lista farkait, és azt, hogy hány páratlan szám szerepel benne.
tailOdds :: [Int] -> [(Int, [Int])]
Példa:
tailOdds [1,2,3] ↦ [(2, [1,2,3]),
(1, [2,3]),
(1, [3]),
(0, [])]
Definiáld a logikai és, vagy, tagadás éd kizáró vagy operátorokat (&&).
land :: Bool -> Bool -> Bool
lor :: Bool -> Bool -> Bool
lnot :: Bool -> Bool
lxor :: Bool -> Bool -> Bool
Írj olyan függvényt, amely a kisbetűkből nagybetűket csinál és fordítva. A többi karakter ne változzon meg.
A megoldáshoz szükség lesz a Char
modul toUpper
, toLower
, isUpper
és isLower
függvényeire.
toggleCase :: Char -> Char
Nagybetűsítsd a függvény első paraméterének első karakterét, ha az latin kisbetű. Minden más jel maradjon változatlan.
toUpperFirst :: String -> String
Készíts olyan függvényt, amely egy elemet szúr be egy rendezett listába.
Az (Ord a) típusosztály jelentése: az a típus elemeire használhatóak az összehasonlító műveletek, pl. a <
és a >
.
ins :: (Ord a) => a -> [a] -> [a]
Írj gyorshatványozó függvényt.
toThe :: Integer -> Integer -> Integer
A hatványozásnál használd ki a második paraméter bináris felbontását:
3 ** 11 ↦ 3 ** (1 + 2 + 8) ↦ (3**1) * (3**2) * (3**8)
Készíts olyan függvényt, amely egy együtthatóival megadott polinomot értékel ki egy megadott helyen.
polynomial :: [Int] -> Int -> Int
[7,2,1,3] `polynomial` 4 ↦ (7 * 4**3) + (2 * 4**2) + (1 * 4) + 3
[7,2,1,3] `polynomial` 4 ↦ ((7 * 4 + 2) * 4 + 1) * 4 + 3
Állapítsd meg, hogy egy adott érték szerepel-e egy listában.
elem :: (Eq a) => a -> [a] -> Bool
Az (Eq a) típusosztály jelentése: az a típus elemeire használható az egyenlőségvizsgálat, azaz az ↦
és a /=
.
Valósítsd meg a beszúrásos rendezést függvénnyel.
insertSort :: (Ord a) => [a] -> [a]
Fésüld össze két lista elemeit egy új listába.
mergeWith :: [a] -> [a] -> [a]
Példa:
[1,2,3] `mergeWith` [4,5,6] ↦ [1,4,2,5,3,6]
[] `mergeWith` [4,5,6] ↦ [4,5,6]
Darabold fel a kapott listát egyforma hosszú részekre.
runs :: Int -> [a] -> [[a]]
runs 3 [1..10] ↦ [[1..3],[4..6],[7..9],[10]]
Darabold fel a kapott listát egyforma hosszú részekre. Minden darab méretét külön kapjuk meg.
runsBy :: [Int] -> [a] -> [[a]]
Definiálj egy olyan függvényt, amely egy lista minden n-edik elemét veszi!
every :: Int -> [a] -> [a]
every 0 "Hello World" ↦ ""
every 2 "Hello World" ↦ "HloWrd"
every 3 "Hello World" ↦ "HlWl"
Készíts olyan függvényt, amely visszaadja egy nemnegatív egész szám kettes számrendszerbeli számjegyeit fordított sorrendben!
toBin :: Integer -> [Integer]
toBin 0 ↦ []
toBin 1 ↦ [1]
toBin 2 ↦ [0,1]
toBin 10 ↦ [0,1,0,1]