Haskell 笔记 (三) 类型

类型

Haskell有强大的类型系统

  1. 每个表达式在编译时都会明确类型,因此可以有更多的信息来检查错误。
  2. 支持类型推导。
Prelude> :t True
True :: Bool
Prelude> :t 'a'
'a' :: Char
Prelude> :t "hi"
"hi" :: [Char]
Prelude> :t (True, 'a')
(True, 'a') :: (Bool, Char)
Prelude> :t (True, "ss")
(True, "ss") :: (Bool, [Char])
Prelude> :t 4==5
4==5 :: Bool

::读作: “它的类型为”

4 == 5 :: Bool读作4==5 它的类型为 Bool

Prelude> :t cycle
cycle :: [a] -> [a]

函数也有类型, "[a] -> [a]"表示入参为[a],返回值为[a]。 多个入参一样是通过“->”连接,最后一个表示返回值。

注意:凡是明确的类型,其首字母必定是大写。

常见类型

  • Int 有界整数 范围2的-63次方~2的63次方-1
  • Integer 无界整数 可以存放非常大的整数,但效率不如Int高。
  • Float 单精度浮点数
  • Double 双精度浮点数
  • Bool 布尔值
  • Char 表示一个Unicode字符
  • 元祖 也是类型,不过它的类型取决于其中项的类型以及数目。理论上可以有无限种类型,实际上元祖最大项的数量为62。 另外注意空元祖也是一种类型,只有一种值,即().

类型类

类型类是一组函数的集合,定义行为的接口。如果一个类型是某种类型类的实例,那么他必须实现了该类型了所描述的行为。

  • Eq类型类
  • Ord类型类
  • Show类型类
  • Read类型类
  • Enum类型类
  • Bounded类型类
  • Num类型类
  • Floating类型类
  • Integeral类型类
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值