Haskell错误:约束中的非类型变量参数:Num(a - > a - > a - > a)

时间:2015-11-04 06:41:46

标签: debugging haskell

我是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 个答案:

答案 0 :(得分:15)

功能很好,你的论点是关闭的。

尝试splitAt1 [1,2,3,4]代替splitAt1 [1 2 3 4],它应该有用。