大家好,这是我的代码,在该代码上出现“多个镜像声明”的怪异错误。在此之前,我还有其他功能,但是都没有命名为mirror ...有什么想法吗?
mirror :: BinTree a -> BinTree a
mirror = undefined
mirror (Node tL x tR) = Node x mirror tR mirror tL
最佳答案
函数的多个定义必须在等号后留下相同数量的参数。从理论上讲,这不是必需的(请注意:其中一个定义可以肯定是lambda或返回另一个函数),但是人们似乎喜欢它,因为这样的定义通常表示一个错误。
具体来说,您有一个带零参数的定义:
mirror = undefined
还有一个带有一个参数的定义:
mirror (Node tL x tR) = Node x mirror tR mirror tL
您可能想要:
mirror _ = undefined
mirror (Node tL x tR) = Node x mirror tR mirror tL
关于haskell - Haskell:“<函数名称>”的多个声明…?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18563575/