【发布时间】:2020-09-21 19:14:23
【问题描述】:
所以我试图制作一个递归的单利函数,但我终其一生都无法弄清楚我需要使用什么类型的签名。这是我的代码:
interest :: (Fractional a) => a-> a-> a-> a
interest p r 0 = p
interest p r t = (1 + (p/100))*interest p r (t-1)
这段代码给了我错误“无法推断 (Eq a) 从文字 '0' 从上下文:小数a 受类型签名的约束: 兴趣 :: forall a.小数 a => a -> a -> a -> a "
但是当我尝试将约束更改为 (Eq a) 时,它告诉我“可能修复 (Fractional a)
有人可以帮帮我吗?
【问题讨论】:
-
同时使用两个限制? (顺便说一句,它们实际上被称为“约束”)
-
是的,将其固定为约束。还有你说的同时使用是什么意思?像这样的东西(Eq a,小数 a)?
标签: haskell