haskell 类型

数据和函数都有类型


addThree :: Int -> Int -> Int -> Int   
addThree x y z = x + y + z

ghci> :t True   
True :: Bool   
ghci> :t "HELLO!"   
"HELLO!" :: [Char]   

Typeclass (类型类): 用 class 关键字定义, 定义其行为, 可理解为接口

Num 是表示数字的 Typeclass,它的成员类型都具有数字的特征。
Integral 同样是表示数字的 Typeclass。Num 包含所有的数字:实数和整数。而 Integral 仅包含整数,其中的成员类型有 Int 和 Integer
Floating 仅包含浮点类型:Float 和 Double。
有个函数在处理数字时会非常有用,它便是 fromIntegral。其类型声明为: fromIntegral :: (Num b, Integral a) => a -> b。fromIntegral 的类型声明中用到了多个类型约束。如你所见,只要将多个类型约束放到括号里用逗号隔开即可。

Kind
类型构造子接受其他类型作为他的参数,来构造出一个具体类型。这样的行为会让我们想到函数(值构造子,也是函数),也是接受一个值当作参数,并回传另一个值。(函数也是值的一种,我们可以把他们传来传去)


类型也有他们自己的标签,叫做 kind。kind 是类型的类型 (一个 * 代表这个类型是具体类型)
ghci> :k Int  Int :: *
ghci> :k Maybe  Maybe :: * -> *
ghci> :k Maybe Int  Maybe Int :: *
ghci> :k Either  Either :: * -> * -> *



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值