【发布时间】:2018-04-27 16:51:56
【问题描述】:
我有一个函数类型的函数:
newtonRootSequence' :: Double -> Double -> [Double]
及函数定义:
newtonRootSequence' xn d = [(xn + (d * (1/xn))) div 2] ++ newtonRootSequence' ((xn + (d * (1/xn))) div 2) d
在接收到两个值 xn 和 d 后,它应该计算给定函数的结果
[(xn + (d * (1/xn))) div 2]
但由于某种原因,编译器在启动时不接受该函数并出现错误:
无法匹配预期类型 '(Integer->Integer->Integer->) ->Integer -> Double 与实际类型 double 函数 (xn + (d * (1/xn))) div 2) 应用于两个参数
此错误发生在我尝试将方程的结果发送到递归步骤的部分
++ newtonRootSequence' ((xn + (d * (1/xn))) div 2) d
【问题讨论】:
-
如果要将
div用作中缀函数,则需要使用反引号,即`div` -
此外 div 只接受积分。
标签: haskell recursion type-mismatch