我想在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