分析haskell代码时出错
我的haskell代码如下所示:分析haskell代码时出错,haskell,recursion,Haskell,Recursion,我的haskell代码如下所示: module Lain where let value = 0 divideBy ::(Ord a, Num a)=>a -> a -> a divideBy _ 0 = 0 divideBy num den | (num - den) >= 0 = do value = value + 1 return divideBy (num-den) den | otherwise = valu
module Lain where
let value = 0
divideBy ::(Ord a, Num a)=>a -> a -> a
divideBy _ 0 = 0
divideBy num den
| (num - den) >= 0 = do
value = value + 1
return divideBy (num-den) den
| otherwise = value
加载haskell Lain.hs文件时出错为:
app/Lain.hs:18:1:错误:
分析错误(可能缩进不正确或括号不匹配)
失败,已加载模块:无。
无法解释我错在哪里,在我看来更像是一个逻辑错误。我的代码想要打印给定分子和分母的商。请帮我弄清楚我到底犯了什么错。提前感谢。
value=value+1
不是do
块中的有效语句。唯一有效的声明是:
- 变量绑定:
let pattern=expression
- 一元绑定:
,那么它比pattern=0
和num-den
的商多1;否则就是den
非常感谢!!这真的很有帮助!0
divideBy :: (Ord a, Num a) => a -> a -> a divideBy _ 0 = 0 divideBy num den | num - den >= 0 = 1 + divideBy (num - den) den | otherwise = 0