tôi cần phải thực hiện một chức năng mà phải mất một danh sách và một yếu tố và trả về một danh sách trong đó sự xuất hiện đầu tiên của nguyên tố này được lấy ra: một cái gì đó giống nhưLàm cách nào tôi có thể xóa lần xuất hiện đầu tiên của một số trong danh sách? Haskell
removeFst [1,5,2,3,5,3,4,5,6] 5
[1,2,3,5,3,4,5,6]
Những gì tôi cố gắng là:
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
Nhưng điều này không hoạt động ... nó trả về danh sách mà không có các phần tử đầu tiên. Tôi nghĩ rằng tôi nên thực hiện cuộc gọi đệ quy để làm cho danh sách cái gì đó như:
removeFst (x:xs) m
| x == m = xs
| otherwise = removeFst (-- return the whole list till element x) m
thx :) nó làm việc – Thanatos