ho bisogno di fare una funzione che prende una lista e un elemento e restituisce un elenco in cui viene rimossa la prima occorrenza dell'elemento: qualcosa di simileCome posso rimuovere la prima comparsa di un numero in una lista? Haskell
removeFst [1,5,2,3,5,3,4,5,6] 5
[1,2,3,5,3,4,5,6]
Quello che ho cercato è:
main :: IO()
main = do
putStr (show $ removeFst [1,5,2,3,5,3,4,5,6] 5)
removeFst :: [Int] -> Int -> [Int]
removeFst [] m = []
removeFst [x] m
| x == m = []
| otherwise = [x]
removeFst (x:xs) m
| x == m = xs
| otherwise = removeFst xs m
Ma questo non funziona ... restituisce la lista senza i primi elementi. Penso che dovrei fare la chiamata ricorsiva a fare l'elenco qualcosa come:
removeFst (x:xs) m
| x == m = xs
| otherwise = removeFst (-- return the whole list till element x) m
thx :) ha funzionato – Thanatos