Ошибка Haskell: не аргумент переменной типа в ограничении: Num (a - > a - > a - > a)

Я новичок в Haskell и пытаюсь выполнить следующий пример кода из моей книги:

файл:

-- my name

splitAt1   ::  [a] -> ([a], [a])
splitAt1 xs = (take 2 xs, drop 2 xs) 

Я тестирую, запустив строку:

splitAt1 [1 2 3 4]

идея заключается в том, что входной массив разбивается на два массива по индексу 2. Тем не менее, я получаю следующую ошибку:

Non type-variable argument
  in the constraint: Num (a -> a -> a -> a)
(Use FlexibleContexts to permit this)
When checking that ‘it’ has the inferred type
  it :: forall a a1 a2 a3.
        (Num a1, Num a2, Num a3, Num (a1 -> a2 -> a3 -> a)) =>
        ([a], [a])

может кто поможет мне расшифровать сообщение об ошибке и, возможно, что не так с кодом?

1 ответов


функция в порядке, это ваш аргумент, который выключен.

попробовать splitAt1 [1,2,3,4] вместо splitAt1 [1 2 3 4] и это должно работать.