如何正确使用自定义Haskell数据类型构造器?Tree空树实现报错解惑
问题解决方法
你混淆了类型名和数据构造器:
Tree a是你定义的类型名称,而实际可用来创建实例的构造器是Leaf(对应空树)和Node(对应带值的节点)。- 你写的
emptyTree = Tree错误地把类型名当成了构造器,编译器找不到名为Tree的构造器才抛出了警告。
正确的emptyTree实现直接返回Leaf即可:
emptyTree:: Tree a emptyTree = Leaf
额外提醒:你的Tree定义中用到了Color类型,要确保这个类型已经正确定义或导入,否则后续使用Node构造器时会出现新的错误。
内容的提问来源于stack exchange,提问作者student422
相关产品推荐
相关产品推荐

