我想在Haskell中編寫一個函數,它將採用一個整數列表,如果m
是該列表的一個元素,它將打印沒有m
的列表,否則它將只打印該列表。我已經寫從列表中刪除整數
rmvFirst :: Int -> [Int] -> [Int]
rmvFirst m [] = error "Empty"
rmvFirst m [x] | x == m = error "Empty Set"
rmvFirst m (x:xs) | x == m = (xs)
rmvFirst m (x:xs) | otherwise = rmvFirst m (xs)
如果我把3 [1..5],輸出[4..5]。但是,我想要{1,2,4,5}。我正在使用的書只有min
和max
定義。
用什麼語言? –
爲什麼空輸入或空結果出錯?這非常令人驚訝!另外,如果列表中有多個'm'副本,你希望發生什麼? – dfeuer
@dfeuer對於空輸入有一個錯誤在某些情況下可能是有意義的。也就是說,你想確定你的函數真的刪除了一個元素 - 如果沒有,那麼其他地方就有一個bug,所以我們現在可能想要報告它。另一方面,空輸出的錯誤很奇怪,我找不到任何理由選擇。 – chi