所以我试图在教程learnyouahaskell中理解这个功能,但它似乎没有正常工作。据我了解,它应该包含一对配对列表,并从这些配对中返回一个BMI列表。
calcBmis :: (RealFloat a) => [(a, a)] -> [a]
calcBmis xs = [bmi w h | (w, h) <- xs]
where bmi weight height = weight / height ^ 2
每当我尝试使用此输入calcBmis [(1,2),(2.4)]
运行该函数时,我都会收到此错误:
<interactive>:77:1: error:
• Non type-variable argument in the constraint: Fractional (a, a)
(Use FlexibleContexts to permit this)
• When checking the inferred type
it :: forall a. (Fractional (a, a), RealFloat a) => [a]
答案 0 :(得分:2)
你的第二个元素是“2.4”而不是“(2,4)”。运行“calcBmis [(1,2),(2,4)]”应该有效。