我是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])
任何人都可以帮我解码错误信息,也许代码有什么问题?
答案 0 :(得分:15)
功能很好,你的论点是关闭的。
尝试splitAt1 [1,2,3,4]
代替splitAt1 [1 2 3 4]
,它应该有用。