《Haskell趣学指南》—— 第2章,第2.2节Haskell的常见类型

简介: 本节书摘来自异步社区《Haskell趣学指南》一书中的第2章,第2.2节Haskell的常见类型,作者 【斯洛文尼亚】Miran Lipovaca,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.2 Haskell的常见类型 接下来我们看几个Haskell中常见的基本类型,比如用于表示数、字符、布尔值的类型。

本节书摘来自异步社区《Haskell趣学指南》一书中的第2章,第2.2节Haskell的常见类型,作者 【斯洛文尼亚】Miran Lipovaca,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 Haskell的常见类型
接下来我们看几个Haskell中常见的基本类型,比如用于表示数、字符、布尔值的类型。

Int意为整数。7可以是Int,但7.2不可以。Int是有界的(bounded),它的值一定界于最小值与最大值之间。
注意:
我们使用的 GHC 编译器规定 Int 的界限与机器相关。如果你的机器采用64位CPU,那么Int 的最小值一般为−263,最大值为263−1。
Integer也是用来表示整数的,但它是无界的。这就意味着可以用它存放非常非常大的数(真的非常非常大!),不过它的效率不如Int高。拿下面的函数作为例子,可以将下面的函数保存到一个文件中:

factorial :: Integer -> Integer
factorial n = product [1..n] 

然后通过:l将它装载入GHCi并进行测试:

ghci> factorial 50
30414093201713378043612608166064768844377641568960512000000000000

Float表示单精度浮点数。将下面的函数加入刚才的文件:

circumference :: Float -> Float
circumference r = 2 * pi * r

随后装载并测试:

ghci> circumference 4.0
25.132742

Double表示双精度浮点数。双精度的数值类型中的位是一般的数值类型的两倍,这些多出来的位使它的精度更高,同时也占据更大的内存空间。继续将下面的这个函数加入文件:

circumference' :: Double -> Double
circumference' r = 2 * pi * r

装载并测试。可以特别留意circumference与circumference'两者在精度上的差异。
`
ghci> circumference' 4.0
25.132741228718345

Bool表示布尔值,它只有两种值,即True和False。
Char表示一个Unicode字符。一个字符由单引号括起,一组字符的列表即字符串。
相关文章
|
5天前
|
存储 Rust 自然语言处理
Rust 基础语法和数据类型
Rust 基础语法和数据类型
22 0
|
2月前
|
JavaScript 前端开发 C语言
Python 到底是强类型语言,还是弱类型语言?
Python 到底是强类型语言,还是弱类型语言?
18 2
|
2月前
|
Rust 安全 Java
Rust 语言的类型系统
假如让你设计编程语言的类型,你会怎么做? 要定义哪些类型? 类型之间如何交互? 是否需要类型推断? 类型系统是编程语言中用于定义和控制类型的一组规则。
Rust 语言的类型系统
|
JavaScript 前端开发 程序员
热爱函数式的你,句句纯正的 Haskell【类型篇】
Haskell 是一门纯的函数式语言。 也就是说计算机主要是通过函数来完成的(像在数学中一样),而不是通过“先做这个,再做那个”的命令式操作顺序进行的(像在主流的编程语言中一样)。—— Simon Peyton Jones
热爱函数式的你,句句纯正的 Haskell【类型篇】
|
存储 Rust 编译器
Rust 数据类型
Rust数据类型指南
haskell简明入门(一)
本文的主要内容参考自《Haskell趣学指南》 1. What is Haskell?     以下内容引用自Haskell官网: Haskell是一个先进的,纯粹的函数式编程语言。一个典型的声明式地,静态类型的代码如下: primes = filterPrime [2.
1466 0
《Haskell趣学指南》——导读
本节书摘来自异步社区《Haskell趣学指南》一书中的导读,作者 【斯洛文尼亚】Miran Lipovaca,更多章节内容可以访问云栖社区“异步社区”公众号查看
1457 0