Kezdőoldal » Számítástechnika » Programozás » Mit kellene hozzáadnom a...

Mit kellene hozzáadnom a haskell kódomhoz, hogy működjön az összes tesztesetre ?

Figyelt kérdés

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"



#Haskell #listakülönbség
2021. okt. 31. 21:57
 1/2 anonim ***** válasza:

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)

2021. nov. 1. 12:20
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Köszi a segítséget, sikerült megoldani.
2021. nov. 1. 14:44

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

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!