Ошибка при тестировании функции с отрицательным числом
Я следую вместе сУчим тебя на Haskell для хорошего благаЯ реализовалtake'
:
take' :: (Ord i, Num i) => i -> [a] -> [a]
take' n _
| n <= 0 = []
take' _ [] = []
take' n (x:xs) = x: take' (n-1) xs
При тестировании функции с:
take' -2 [2]
вместо того, чтобы получить пустой список, у меня есть это сообщение:
Non type-variable argument in the constraint: Num (i -> [a] -> [a])
(Use FlexibleContexts to permit this)
When checking that ‘it’ has the inferred type
it :: forall i a t.
(Num i, Num t, Num (i -> [a] -> [a]), Num ([t] -> i -> [a] -> [a]),
Ord i) =>
i -> [a] -> [a]
Я добавил пробел между-
а также2
как предложено, и это приводит к той же ошибке:
*Main> take' - 2 [2]
<interactive>:78:1:
Non type-variable argument in the constraint: Num (i -> [a] -> [a])
(Use FlexibleContexts to permit this)
When checking that ‘it’ has the inferred type
it :: forall i a t.
(Num i, Num t, Num (i -> [a] -> [a]), Num ([t] -> i -> [a] -> [a]),
Ord i) =>
i -> [a] -> [a]