zoukankan      html  css  js  c++  java
  • haskell学习笔记<1>--基本语法

    七月记录:整个七月就在玩,参加夏令营,去遨游。。。。 八月份需要开始复习,正等书的这个过程突然想起一直没有完成的学习-haskell,所以当前的目标是用haskell制作一个局域网通信的小工具,要求:一,完成工具要求  二,完备的设计文档   三,报告

    学习资料:http://fleurer-lee.com/lyah/chapters.htm  haskell趣学指南 (后续还会有别的书,rwh等)

    基本语法:

    类型:

    常见基本类型:   Int:一般是32bit整数

          Integer:无限大整数

          Float:单浮点

          Double:双浮点

          Bool:布尔型

          Char:字符型

    常见类型类:

        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]
  • 相关阅读:
    Zend Framework 2.1.5 中根据服务器的环境配置调用数据库等的不同配置
    在基于 Eclipse 的 IDE 中安装和使用 Emmet(ZenCoding)
    【翻译】Emmet(Zen Coding)官方文档 之六 自定义 Emmet
    【翻译】Emmet(Zen Coding)官方文档 之二 缩写
    【翻译】Emmet(Zen Coding)官方文档 之七 一览表
    【翻译】Emmet(Zen Coding)官方文档 之三 CSS 缩写
    【翻译】Emmet(Zen Coding)官方文档 之四 动作
    【翻译】Emmet(Zen Coding)官方文档 之一 web 编程的必备工具
    Zend Framework 2 时区设置警告问题的解决
    【翻译】Emmet (Zen Coding) 元素类型
  • 原文地址:https://www.cnblogs.com/sleeper-qp/p/3242221.html
Copyright © 2011-2022 走看看