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_Syntax - Fatal编程技术网

看似随机位置的Haskell语法错误

看似随机位置的Haskell语法错误,haskell,syntax,Haskell,Syntax,这段代码几分钟前还在运行,在我重新启动我的ghci后,它停止了工作。。 现在我在where、snst或size上得到随机错误。(不确定我更改了什么导致了每个单独的错误) 有人能指出我的语法有什么问题吗 instance Array Tree where new n x | n <= 0 = Leaf | odd n = Node n nst x nst | even n = Node n (Node (n `d

这段代码几分钟前还在运行,在我重新启动我的ghci后,它停止了工作。。 现在我在
where
snst
size
上得到随机错误。(不确定我更改了什么导致了每个单独的错误)

有人能指出我的语法有什么问题吗

instance Array Tree where
    new n x  
        | n <= 0    = Leaf
        | odd n     = Node n nst x nst
        | even n    = Node n (Node (n `div` 2) snst x snst) x snst
        where nst = (new (n `div` 2) x)
              snst = (new (n `div` 2 - 1) x)

    size Leaf            = 0
    size (Node s _ _ _)  = s
实例数组树,其中
新n x

|n在这些情况下,请确保没有隐藏选项卡

我检查了您缩进
的方法是否有效。因此,除非在
实例
声明之前有错误,否则我看不到任何语法错误

此外,消除错误源的一个想法是删除
的定义

myNew :: ...
myNew n x  
        | n <= 0    = Leaf
        | odd n     = Node n nst x nst
        | even n    = Node n (Node (n `div` 2) snst x snst) x snst
        where nst = (new (n `div` 2) x)
              snst = (new (n `div` 2 - 1) x)

instance Array Tree where
    new = myNew

    size Leaf            = 0
    size (Node s _ _ _)  = s
myNew::。。。
myNew n x

|那工作很好。谢谢但是,对于我这样做导致编译失败的原因,有什么解释吗?@user1043625-Well。实例中函数定义的语法是有限的。据我记忆所及,每个函数只允许有一个方程。但很明显,这里有2个用于
大小
。塔拉什:这是不正确的。实例声明中的函数定义没有这样的限制。