haskell學習筆記<1>--基本語法

七月記錄:整個七月就在玩,參加夏令營,去遨遊。。。。 八月份須要開始複習,正等書的這個過程忽然想起一直沒有完成的學習-haskell,因此當前的目標是用haskell製做一個局域網通訊的小工具,要求:一,完成工具要求  二,完備的設計文檔   三,報告express

學習資料:http://fleurer-lee.com/lyah/chapters.htm  haskell趣學指南 (後續還會有別的書,rwh等)函數

基本語法:工具

類型:學習

常見基本類型:   Int:通常是32bit整數ui

      Integer:無限大整數spa

      Float:單浮點設計

      Double:雙浮點code

      Bool:布爾型htm

      Char:字符型
blog

常見類型類:

    Eq:可判斷性類型 例如Int等

    Ord:可判斷大小型 

    Show:可用字符串表示的類型

    Read:將一個字符串轉爲Read的類型  單用需類型註釋 如read 「5」 :: Int

    Num:表示數字的類型類

    Integral:一樣是表示數字的類型類。Num包含全部的數字:實數和整數。而Intgral僅包含整數,其中的成員類型有Int和Integer。

    Floating:僅包含浮點類型:Float和Double。

List and Tuple:

  List:多維鏈表  Tuple:元組

  List:類型相同,不定長

  Tuple:類型能夠不相同,可是單元數據數目必定

語法:

   if-else語句 格式: if 表達式

            then  表達式

            else   表達式

       if-else語句自己也是一個表達式,這裏體現出函數式語言的一個特色:一切皆數

    模式匹配:模式匹配經過檢查數據的特定結構來檢查其是否匹配,並按模式從中取得數據。

          注意:記得必定通配語句

      where綁定:where綁定中定義的名字只對本函數可見,可用模式匹配,函數等

      let in表達式:   格式:let [bindings] in [expressions]    

        let綁定自己是個表達式,而where綁定則是個語法結構

      case :

          格式:
         case
 expression of  pattern -> result   
                             pattern -> result   
                             pattern -> result   
                             ...  

        用途 1:if-else或者case等 

    

lucky :: (Integral a) => a -> String
lucky 7 = "Lucky Number seven!"
lucky x ="Sorry,you're out of luck,pal!"

 

      用途 2:遞歸

         

--quicksort
quickSort :: (Ord a) => [a] -> [a]
quickSort [] = []
quickSort [x] = [x]
quickSort (x:xs) = (quickSort small) ++ [x] ++ (quickSort big)
            where    
                small = [y | y<-xs,y<=x]
                big =   [y | y<-xs,y>x]
相關文章
相關標籤/搜索