1. 程式人生 > >初識Haskell 二:基本操作和類型Type

初識Haskell 二:基本操作和類型Type

命令行 new alt style 單引號 word vision image win

主要介紹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`是操作符。還有‘\n‘為換行符(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