0

こんにちは、要素の最初の出現を削除してから残りのリストを返す簡単なプログラムを作成しようとしています。しばらく経ちましたが、なぜ 8 行目でこの解析エラーが発生するのか疑問に思っています。

module deleteFirst where
deleteFirst :: (Eq a) => a ->[a] -> [a]

deleteFirst toDelete [] = []
deleteFirst toDelete (a:as) =
    if(toDelete == a) then as
    else a:(deleteFirst toDelete as)

入力はありますか?みんなありがとう

4

2 に答える 2

7

解析エラーは、8 行目ではなく 8 列目にあります。これは、モジュール名が大文字で始まる必要があるためです。

于 2013-02-06T01:28:07.527 に答える
2

答えはわかりましたが、別の解決策を指摘したいと思います。

deleteFirst x xs = u ++ (drop 1 v) where (u,v) = break (==x) xs
于 2013-02-06T08:06:32.530 に答える