Mit kellene hozzáadnom a haskell kódomhoz, hogy működjön az összes tesztesetre ?
Listakülönbség függvény: Azokat az elemeket tartalmazza a különbséglista, amely az első listának az eleme, de a másodiknak nem!
remove :: Eq a => a -> [a] -> [a]
remove _ [] = []
remove e (x:xs)
| (e == x) = xs
| otherwise = x : remove e xs
listDiff :: Eq a => [a] -> [a] -> [a]
listDiff a []= a
listDiff a (x:xs)
| x `elem` a = listDiff (remove x a) xs
| otherwise = listDiff a xs
-listDiff "Haskell" "the best" == "Hakll" -- Ezzel működik.
A többivel pedig nem.
-listDiff "Cannot predict" "the future" == "Cannopdic"
-listDiff "Be the type of person" "you want to meet" == "Bhpfprs"
-listDiff "Eotvos Lorand" "Tudomanyegyetem" == "Evs Lr"
a "remove"-ban van a hiba, az eltávolítandó karakter többször is szerepelhet a listában, szóval ha megtaláltad ("e == x" eset), akkor nem lehet egyből visszaadni az "xs"-t, mivel abban is szerepelhet még az "e"
(amúgy ha nem így futtatnád a teszteseteket, hogy csak egy True/False értéket látsz arról, hogy jól működik-e, hanem megnéznéd, hogy ténylegesen mi az eredménye és ez miben tér el az elvárttól, akkor látnád, hogy mit kell javítani rajta)
További 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!