在Haskell,(值电平)的表达式被分类成类型,其可与记谱::如下所示:3 :: Int,"Hello" :: String,(+ 1) :: Num a => a -> a.类似地,类型被分类为种类.在GHCI,可以检查的种类使用命令一个类型的表达式:kind或:k:
> :k Int
Int :: *
> :k Maybe
Maybe :: * -> *
> :k Either
Either :: * -> * -> *
> :k Num
Num :: * -> Constraint
> :k Monad
Monad :: (* -> *) -> Constraint
Run Code Online (Sandbox Code Playgroud)
浮动的定义*是"具体类型"或"值"或"运行时值".例如,参见Learn You A Haskell.那是真的吗?我们已经有一些 …
在Haskell中,提升型产品意味着(a,b,c)和(a,(b,c))之间存在语义差异.
如果所有产品的所有模式匹配总是无可辩驳的,则没有区别,(a,b,c)可能是(a,(b,c))的语法糖.
为什么Haskell会选择升降式产品?
haskell types programming-languages functional-programming lazy-evaluation