step
függvény többszöri, egymás utáni alkalmazásaA feladatban egy szójátékot fogunk megvalósítani, melyben szóláncokat kell alkotni. A szóláncokat egy rögzített halmaz szavaiból képezhetjük. A szóláncolatokat a következő szabályok mentén alkalmazzuk:
Egy szóláncot, melyre a fenti szabályok érvényesek, a következőképpen reprezentáljuk:
(A type
kulcsszó segítségével a Snake
típus a [String]
típus egy másik neve lesz, hasonlóan a String
és [Char]
viszonyához. A programban ez semmilyen további megszorítást nem indukál, csupán a beszédesebb függvénytípusok kialakításában segít.)
Próbáljuk meg megoldani a feladatot csak a következő segédanyagok felhasználásával: Haskell könyvtárainak dokumentációja, Hoogle, a tárgy honlapja és a BE-AD rendszerbe feltöltött beadandók.
Adjuk meg azt a függvényt, amely a paraméterül kapott listából megadja milyen kezdőbetűvel kezdődnek szavak!
Adjuk meg azokat a szavakat, amelyek a megadott kezdőbetűvel kezdődnek!
Adjuk meg azokat a szavakat, amelyek a megadott betűvel végződnek!
Adjuk meg azt a függvényt, amely meghatározza egy szóláncolat befejező betűjét!
Adjuk meg azt a függvényt, amely egy létező szóláncolathoz megadja annak lehetséges folyatásait! A függvény üres listát adjon vissza, ha nem tudja azt folytatni.
Itt még nem kell figyelni arra, hogy használtuk-e már az adott szót, amellyel folytatni szeretnénk!
Távolítsuk el a halmazból azokat a szavakat, amelyeket már felhasználtunk a szóláncolatban!
Adjuk meg azt a függvényt, amely egy létező szóláncolathoz megadja annak lehetséges folyatásait! A függvény üres listát adjon vissza, ha nem tudja azt folytatni.
Ebben az esetben a függvény már ügyeljen arra is, hogy a folytatásnál a szavak ne ismétlődhessenek!
step
függvény többszöri, egymás utáni alkalmazásaAdjuk meg azt a függvényt, amely egy szóláncolat halmazból előállítja az összes lehetséges szóláncolatot a step
függvény iterálásával, melyek a kiinduló láncolatokból keletkezhetnek! Egészen addig ismételjük az alkalmazást, amíg üres szóláncot nem kapunk.
Adjuk meg az összes lehetséges szóláncolatot, amely az adott betűvel kezdődő szavakből indulva előállítja az összes lehetséges szóláncolatot!
Definiáljuk azt a függvényt, amely adott betűvel induló szavakból indított szóláncolatok közül megadja a leghosszabbat (amely lehet akár üres is)!
Adjuk meg azt a függvényt, amely az összes lehetséges szóláncolatot előállítja egy adott szóhalmaz alapján!
Megjegyzés. Korábban definiáltunk egy függvényt, amely megadja, hogy milyen kezdőbetűvel indíthatjuk a láncolatokat. Bátran használjuk ezt is a megoldásban!
Adjuk meg azt a függvényt, amely egy adott szóhalmazból képezhető összes szóláncolat közül kiválasztja a leghosszabbat!