嗨,我对哈斯克尔很新.我正在尝试编写一个代码,允许我输入一个坐标系列表(CS1)(即一个坐标列表列表)和一个不允许的所有坐标列表(CL).该函数的目的是丢弃CS1中包含CL中至少1个这些坐标的所有坐标系,最后得到CS1中较小的坐标系子集(CS2).(令人困惑?对不起)
我认为我非常接近破解坚果(虽然我真的不知道,因为我正处于线索错误阶段),但是当我运行listelem2时,我有一个非穷举的问题,它会在侦听中抱怨.任何人都能看到我错过的东西吗?谢谢你提供的所有帮助!:d
listelem0 :: (Eq a) => [a] -> a -> [a]
listelem0 [] y = []
listelem0 (x:xs) y
| x == y = []
| x /= y = [x] ++ listelem0 xs y
listelem :: (Eq a) => [a] -> a -> [a]
listelem (x:xs) y
| length (listelem0 (x:xs) y) < length (x:xs) = []
| otherwise = listelem0 (x:xs) y
listelem1 :: (Eq a) => [[a]] -> a -> [[a]]
listelem1 [] y = [] …Run Code Online (Sandbox Code Playgroud) haskell ×1