Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分析haskell代码时出错_Haskell_Recursion - Fatal编程技术网

分析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

我的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 = value
加载haskell Lain.hs文件时出错为:

app/Lain.hs:18:1:错误:
分析错误(可能缩进不正确或括号不匹配)
失败,已加载模块:无。


无法解释我错在哪里,在我看来更像是一个逻辑错误。我的代码想要打印给定分子和分母的商。请帮我弄清楚我到底犯了什么错。提前感谢。

value=value+1
不是
do
块中的有效语句。唯一有效的声明是:

  • 变量绑定:
    let pattern=expression


  • 一元绑定:
    pattern=0
    ,那么它比
    num-den
    den
    的商多1;否则就是
    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