我想知道以下 Haskellcode 有哪个错误!
f :: Fractional a => a -> a -> a
f x y
| x > y = x - y
| otherwise = x + y
call = f 3.5 2.0
我试图解决这个问题,但我找不到解决方案,因为 3.5 和 2.0 是浮点数,应该适用于小数类型。
好吧,您正在比较两个项目
x
和 y
,并且这不是由 Fractional
类型类或其任何超类导出的,您还需要将其约束为 Ord
:
f :: (Ord a, Fractional a) => a -> a -> a
f x y
| x > y = x - y
| otherwise = x + y