Я впервые пробую Хаскель. Я пытаюсь сделать функцию, которая берет элемент и список и удаляет второе появление элемента. Например, если элемент 2
, а список [2,3,4,2,5,2]
, результат будет [2, 3, 4, 5, 2]
.
Однако я получаю эту ошибку:
TareaHaskell.hs:36:69: error: parse error on input ‘)’
|
36 | | ( (a == x) && not (isItIn x newList) ) = ( (let newList = x:[]) && (deleteSecond a xs) )
Код:
isItIn :: (Eq a ) => a -> [a] -> Bool
isItIn a [] = False
isItIn a (x:xs) = if a == x
then True
else isItIn a xs
deleteSecond :: (Eq a ) => a -> ( [a] -> [a] )
deleteSecond a [] = newList
deleteSecond a (x:xs)
| ( (a == x) && not (isItIn x newList) ) = ( (let newList = x:[]) && (deleteSecond a xs) )
| (a == x) && (isItIn x newList) = (deleteSecond a xs)
| otherwise = let newList = x:[] && deleteSecond a xs
Я читал, что это может быть проблема с отступом, однако я уже пытался использовать пробелы, перемещая его назад и вперед, и он все еще не работает.
Я также использую Notepad ++ и Sublime, чтобы помочь с отступом и ничего.