我有两个功能
somefunc:: (Floating a, Ord a) => (a, a) -> (a, a) -> a
pairs :: (Floating a, Ord a) =>[(a,a)] -> (a,a) -> [((a, a), a)]
pairs xs p = zip xs (map (somefunc p) xs)
我试图用一些函数进行计算并将其附加到每个元组。 我的代码编译,但是当我尝试像这样执行我的代码时
pairs [1,1] (1,1)
我收到以下错误
<interactive>:49:1: error:
• Non type-variable argument in the constraint: Num (a, a)
(Use FlexibleContexts to permit this)
• When checking the inferred type
it :: forall a. (Num (a, a), Ord a, Floating a) => [((a, a), a)]
有人可以向我解释这个错误吗?
答案 0 :(得分:3)
您将错误的类型添加到您的函数中
pairs [1,1] (1,1)
应为pairs [(1,1)] (1,1)
您收到的错误消息是因为编译器尝试将1
(列表元素)转换为对??
但未能这样做。