看似随机位置的Haskell语法错误
这段代码几分钟前还在运行,在我重新启动我的ghci后,它停止了工作。。 现在我在看似随机位置的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
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个用于大小。塔拉什:这是不正确的。实例声明中的函数定义没有这样的限制。