博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Haskell趣学指南》—— 第2章,第2.2节Haskell的常见类型
阅读量:5926 次
发布时间:2019-06-19

本文共 1001 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区《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 -> Integerfactorial n = product [1..n]

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

ghci> factorial 5030414093201713378043612608166064768844377641568960512000000000000

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

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

随后装载并测试:

ghci> circumference 4.025.132742

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

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

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

`
ghci> circumference' 4.0
25.132741228718345

Bool表示布尔值,它只有两种值,即True和False。Char表示一个Unicode字符。一个字符由单引号括起,一组字符的列表即字符串。

转载地址:http://ymovx.baihongyu.com/

你可能感兴趣的文章
重复数据删除:块级技术VS.字节级技术
查看>>
免杀新姿势:利用线程将恶意代码注入到内存中
查看>>
使用RxJava从多个数据源获取数据
查看>>
Javascript中的循环变量声明,到底应该放在哪儿?
查看>>
苹果的热榜:积分墙背后的隐秘世界
查看>>
大数据能否力挽国足败落狂澜?
查看>>
HealthKit有名无实,疑点重重
查看>>
“爱思助手”曝为iOS木马:可绕过苹果DRM机制
查看>>
“威胁情报”在手,反黑客终于有地图了!
查看>>
从零开始来看一下Java泛型的设计
查看>>
互联网打响云上争夺战:从计算到生态
查看>>
如何使用CPU来加速你的Linux命令
查看>>
多云战略:企业如何精益求精?
查看>>
12款白帽子用于黑客渗透测试的操作系统
查看>>
大数据对六大领域的挑战
查看>>
思科为其核心网络业务增加了订阅服务
查看>>
社交背水一战?校园日记背后,支付宝野心你真能懂?
查看>>
《企业级ios应用开发实战》一导读
查看>>
嵌入式WiFi芯片价格战已经打响 MCU企业该醒悟了
查看>>
Facebook为Messenger应用添加群组付款功能
查看>>