Haskell создание массива для начинающих - PullRequest
4 голосов
/ 04 мая 2020

Я боролся с довольно простой вещью в Haskell, и, поскольку я не могу понять, что и почему блокирует меня, я подумал, что было бы неплохо спросить здесь. Я хотел бы создать функцию, которая удаляет числа в данном массиве, которые точно такие же, как и предыдущие. Так, например, из массива: [12,12,3,4,5,5,5,7,9] я хотел бы получить на выходе: [12,3,4,5,7,9]. На основании этого я написал:

removeDuplicates[x]                  = x
removeDuplicates(x:y:ys) | x == y    = removeDuplicates(x:ys)
                         | otherwise = x ++ removeDuplicates([]:y:ys)

... но после успешной загрузки кода я получаю сообщение об ошибке:

* Non type-variable argument in the constraint: Num [a]
  (Use FlexibleContexts to permit this)
* When checking the inferred type
    it :: forall a. (Eq a, Num [a]) => [a]

Я понимаю, что что-то не так с моим otherwise оператор и тип возвращаемого значения, но поскольку я новичок в Haskell, я не знаю, как решить эту скорее забавную, чем серьезную проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...