我是Haskell的新手,我正在编写我的第一个数据结构.
data Nat = Null | N Nat
Run Code Online (Sandbox Code Playgroud)
例如: 5是N (N (N (N (N Null))))
我必须从中创建实例 Show, Eq, Ord, Num, Enum
我Eq已经写过并且有效.
instance Eq Nat where
(==) Null Null = True
(==) (N Null) (N Null) = True
(==) Null (N Null) = False
(==) Null (N xs) = False
(==) (N xs) (N xs2) = xs == xs2
Run Code Online (Sandbox Code Playgroud)
但是当我在拥抱中尝试这个时它会给我一个错误("错误 - 控制堆栈溢出").
我不能继续下去.
(N (N Null)) :: Nat
Run Code Online (Sandbox Code Playgroud)
我错过了什么?