I. Formázzuk egy adott szövegállomány tartalmát a következőképpen: azok után az írásjelek után, amelyek benne vannak a {.,!?;} halmazban szigorúan egy szóközt tegyünk, hagyjunk.
II. Az iban.txt állomány IBAN kódokat tartalmaz. Írjunk egy-egy Haskell függvényt, amely
beolvassa, majd rendezi az állományban levő adatokat ábécé sorrendbe,
bináris keresést alkalmazva ellenőrzi, hogy egy megadott IBAN kód szerepel-e az adatok között,
átírja egy okIban.txt állományba azokat az IBAN kódokat, amelyek megfelelő formátumúak. Egy IBAN kód akkor tekinthető megfelelő formátumúnak
ha csak számjegyeket és angol ábécébeli nagybetűket tartalmaz,
ha az IBAN kód hossza megegyezik az országhoz tartozó hosszal, ahol az országhoz tartozó hosszérték az ibanLength.txt állományból olvasható ki,
ha az átcsoportosítás és a helyettesítés után kapott egész szám 97-el való osztási maradéka egyenlő eggyel, ahol
átcsoportosítás: az IBAN kód első négy karakterét kitöröljük a kód elejéről és a kód végéhez fűzzük,
helyettesítés:
az alfanumerikus karaktereket helyettesítsük a következő kódokkal: A -> 10, B -> 11, ..., Z -> 35
az így kapott karakterláncot egész számnak tekintjük
Például:
legyen az IBAN kód: GB82WEST12345698765432
hossz: 22
átcsoportosítás: WEST12345698765432GB82
helyettesítés: 3214282912345698765432161182
ellenőrzés: 3214282912345698765432161182 mod 97 = 1
III. Egy szövegállományban egy adott személyről következő adatok vannak eltárolva: vezetéknév, keresztnév, születési dátum. Hozzuk létre a következő típusú adatszerkezeteket, majd olvassuk ki az adatokat az állományból és állapítsuk meg mindegyik személyről, hogy a hét milyen napján született és mikor van a névnapja. A névnapok megállapításához használhatjuk a névnapokat tartalmazó szövegállományt.
data Datum = Datum{
nap :: Int,
honap:: Int,
ev :: Int
} deriving (Show)