Kezdőoldal » Számítástechnika » Programozás » Valaki aki ért a Haskellhez,...

Valaki aki ért a Haskellhez, tudna segíteni ebben a feladatban?

Figyelt kérdés

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!



2018. okt. 15. 22:02
 1/3 anonim ***** válasza:
Rekurzió.
2018. okt. 16. 08:54
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

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.

2018. okt. 17. 22:20
 3/3 A kérdező kommentje:
Mármint az én kódomra nézve all isValid (h:t).
2018. okt. 17. 22:22

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!