整数のリストを取る関数を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空の入力にエラーがあると、状況によっては意味があります。つまり、あなたの関数が実際に要素を削除しているかどうかを確認したいのですが、そうでない場合は別の場所にバグがありますので、今すぐ報告したいかもしれません。もう一方で、空の出力のエラーは_really_奇妙です、私はその選択肢の正当性を見つけることができません。 – chi