Ошибка 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]
и это должно работать.