我正在尝试习惯在 Haskell 中定义递归类型。作为一个简单的练习,我认为定义一个非空列表数据类型会很容易(并且可能很有用)。
这是我的尝试:
data NonemptyList a = Singleton a | Cons (Singleton a) (NonemptyList a)
这导致编译错误:
不在范围内:类型构造函数或类“单例”
失败,已加载模块:无。
以下代码可以编译,但不适合我。我不能确切地解释为什么不。
data NonemptyList a = Singleton a | Cons a (NonemptyList a)
任何人都可以为我澄清这一点吗?欢迎任何意见。
谢谢
担