初识Haskell 二:基本操作和类型Type
Posted will-zyq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识Haskell 二:基本操作和类型Type相关的知识,希望对你有一定的参考价值。
主要介绍Haskell中的基本操作和类型和类型中的注意点。操作环境Windows
对Discrete Mathematics Using a Computer的第一章Introduction to Haskell进行总结。
1. 在安装了ghci后,便可以进行Haskell的编译,点击GHCi 即可在命令行中打开ghci,也可点击WinGHCi,也可直接在命令行中ghci进入。
直接在命令行中输入ghci进入
2. :? 显示操作命令(注意有“ : ”),常用操作有:
:cd 进入指定路径
:load 载入文件
:quit 退出ghci
3.Haskell使用缩进(indentation)来表示上一行的续写。单行注释符号-- 块注释 {- -}
类型Type:
Integer和Int
两者均表示整数,区别在于:Int的范围为电脑存储一个字(word)的大小,是有限的。Integer是数学意义上的整数,理论上是无限大的,和电脑内存有关。若在计算时结果会超出Int的范围,则在表达式上用 ::Integer 表示为Integer类型,但实际上目前的gchi似乎是当超出Int时,自动用Integer类型表示,不用标明,但超出Int的结果用Int类型表示则显示为0。
Float:单精度浮点数single-precision floating point numbers & Double:双精度浮点数double-precision numbers
浮点数在Haskell中是非精确表示的(当然其他语言也是),比如0.11 - 0.10 和 2.11 - 2.10的结果理应一样,但在Haskell中则不一样(也与电脑有关)
所以需要注意的是当比较两个浮点数时,是比较其差值的绝对值是否小于一定范围(within an acceptable error tolerance)。
Ratio Integer:精确表示有理数
因为有理数都可以表示为分数的形式,Haskell用分子(numerator)%分母(denominator)的形式表示有理数。使用前需要import Data.Ratio。
Bool:布尔值
Char:字符类型
用单引号(single-quote)将字符包起,如 ‘a‘。注意与表示中间操作符的反引号(back-quote)区分,‘?‘是Char,`div`是操作符。还有‘ ‘为换行符(newline),当被打印时会换行。
操作符operator:
部分字符串形式的操作符在表示时,若放在元素的前面则直接打出,如div 5 2,若放在中间(二元操作符)则要用反引号(back-quote,和~一个键,数字键1的左边)表示,如 5 `div` 2。
:: operator 指明该表达式的类型read it as has type,如2::Int says 2 has type Int
+ 加 addition
- 减 subtraction
* 乘 multiplication
/ 除 division 如5/2 => 2.5
div 整除 如 div 5 2 或 5 `div` 2结果为2
^ 幂函数 exponentiation
** 浮点数幂函数the floating point exponentiation,如 2**0.5=>1.41421
== 布尔类型操作符 等于
/= 布尔类型操作符 不等于
< 布尔类型操作符 小于
<= 布尔类型操作符 小于等于
> 布尔类型操作符 大于
>= 布尔类型操作符 大于等于
&& 布尔类型操作符 与
|| 布尔类型操作符 或
not 布尔类型操作符 非
常用函数functions:函数名+空格+表达式即可,不用括号,当然在嵌套时要括号。
max 求两者中的较大值 如max 3 8 => 8
min 求两者中的较小值 如min 3 8 => 3
toUpper 返回该字母的大写形式,需要import Data.Char
toLower 返回该字母的小写形式,需要import Data.Char
以上是关于初识Haskell 二:基本操作和类型Type的主要内容,如果未能解决你的问题,请参考以下文章