所以我试图做一个递归的简单兴趣函数,我一生都无法弄清楚我需要使用什么类型的签名。这是我的代码:
interest :: (Fractional a) => a-> a-> a-> a
interest p r 0 = p
interest p r t = (1 + (p/100))*interest p r (t-1)
Run Code Online (Sandbox Code Playgroud)
这段代码给了我错误“无法从上下文中的文字‘0’中推导出(Eq a):分数 a 由类型签名的边界为:interest :: forall a。分数 a => a -> a ->一个 -> 一个“
但是当我尝试将约束更改为 (Eq a) 时,它告诉我“可能的修复(分数 a)
有人可以帮我吗?
haskell ×1