Valaki aki ért a Haskellhez, tudna segíteni ebben a feladatban?
Az lenne a feladat, hogy egy megadott felhasználónévről el kell dönteni, hogy érvényes-e vagy sem. Tartalmazhat '_' jelet, az angol abc betűit, valamint 0-tól 9-ig a számokat. Ezeket a lépéseket mind külön függvényben kellett megírni. Ezzel a résszel nem is volt probléma, de magát a felhasználónév leellenőrzését nem tudom összehozni. A kód eddig így néz ki:
isUnderscore :: Char -> Bool
isUnderscore '_' = True
isUnderscore x = False
isDigit :: Char -> Bool
isDigit x = elem x ['0'..'9']
isLetter :: Char -> Bool
isLetter x = elem x ['a'..'z'] || elem x ['A'..'Z']
isValid :: Char -> Bool
isValid x = isUnderscore x || isDigit x || isLetter x
isValidUsername :: String -> Bool
isValidUsername (h:t) = isValid h --hogyan tovább?
Ez szép és jó, a head részét leellenőrzi a stringnek, de a tail-en rengeteget gondolkodtam, és egyszerűen fogalmam sincs, hogy lehetne leellenőrizni. Az isValid függvényt ugye nem tudom használni rá, mert az karaktert vár, a tail pedig string típusú. Gondolkodtam rajta, hogy a beépített elem fgv-t kéne valahogy használni a tail-en, de annak egyszerre csak egy karaktert tudok megadni (legjobb tudomásom szerint, javítsatok ki, ha tévedek) úgy pedig elég hosszadalmas lenne egyenként minden lehetséges karaktert megnézni. :D Valaki esetleg tudna ebben segíteni? Ha számít valamit, indexelést (!!), és length függvényt nem lehet használni, valamint a többi függvénybe sem kéne belenyúlni, valamit az isValidUsername-en belül kéne okoskodni.
Előre is köszönöm a válaszokat!
Nem kellett rekurzió,al azt jövő órán vesszük részletesebben. :) De azért köszi.
all isValid x - ez a String összes karakterét leellenőrzi.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!