muszę zrobić funkcję, która pobiera listę i element i zwraca listę, w której pierwsze wystąpienie elementu jest usuwany: coś jakJak usunąć pierwszą pozycję numeru z listy? Haskell
removeFst [1,5,2,3,5,3,4,5,6] 5
[1,2,3,5,3,4,5,6]
co starałem się:
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
Ale to nie działa ... zwraca listę bez pierwszych elementów. Myślę, że powinienem zrobić wywołanie rekurencyjne, aby lista coś takiego:
removeFst (x:xs) m
| x == m = xs
| otherwise = removeFst (-- return the whole list till element x) m
thx :) to działało – Thanatos