在LYAHFGG,一章说,列表定义为:缺点和: - Haskell中的意思是什么?
data List a = Cons a (List a) deriving (Show, Read, Eq, Ord)
我明白这个最从缺点意味着分开。当我尝试:t Cons
和:i Cons
在ghci
我得到一个不在范围内的错误。后来的章节中也谈到: - :和它是如何一样的缺点
infixr 5 :-:
data List a = Empty | a :-: (List a) deriving (Show, Read, Eq, Ord)
但我又实在不明白这是什么:-:
意味着要么。
在另一资源,在有关数据类型的部分,它们限定以下数据类型:
data Expr = X
| Const Int
| Expr :+: Expr
| Expr :-: Expr
| Expr :*: Expr
| Expr :/: Expr
| IfZero Expr Expr Expr
deriving (Eq, Ord)
凡IfZero p q r
相同if p == 0 then q else r
。这是一回事吗?我最困惑的是两个:
是什么意思,如果它是强制语法或只是样式选择。
我建议你阅读关于数据声明的语法。那些是构造函数。 –
@ ThomasM.DuBuisson你可以建议任何资源?这些解释都不是很好 – user6731064
我一直觉得wikibooks是一个低估的资源(https://en.wikibooks.org/wiki/Haskell/Type_declarations),但是LYAH确实有一章(http:// learnyouahaskell.com/making-our-own-types-and-typeclasses#algebraic-data-types)。 –