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]
相关文章
相关标签/搜索