• Haskell Types与Typeclasses


      可使用 :t 命令检测表达式类型。

      明确的类型首字母必大写。

    一、Types

      Char

      Bool

      Int(有界,与Integer类型对比效率高)

      Integer(无界,与Int类型对比效率低)

      Float

      Double

      Tuple的类型取决于长度和其中元素的类型。

      List的类型只取决于其中元素的类型。 

    二、Typeclasses

      =>”表示约束。

      Eq:可比较相等性。

      Ord:可比较大小。

      compare:取两个Ord中相同类型的值做参数,结果为LT,GT,EQ三种情况(小于/大于/相等)。

      Show:可用字符串表示。

           show:将Show中成员类型转换为字符串。

      Read:与Show相逆。

           read:将字符串转换为Read中的成员类型。但是要明确其输出的类型,不明确的转换无法进行。read "1"是错误的表达式,而read "1" :: Int才是正确的表达式。

      Enum:表示可连续的类型。

           succ:前继。

           pred:后继。

      Bounded:拥有界限。

           minBound:下边界。例,minBound :: Int表达式是查看Int类型的下限是多少。

           maxBound:上边界。例,maxBound :: Int表达式是查看Int类型的上限是多少。

      Num:数字。

      Integral:整数。包括Int和Integer类型

      Floating:浮点数,包括Float和 Double类型。

           fromIntegral:将Integral转换为Num型。

    三、对Types 与 Typeclasses的理解。

      1.一个表达式只能属于一种Type,但可以属于多种Typeclasses。

      2.把Type理解成类型,一个表达式只能属于一种类型。把Typeclass理解成属性,一个表达式可以拥有多种属性。

      3.属于相同类型的表达式,必然会有相同的属性。但拥有相同属性的表达式,却不一定属于相同的类型。

  • 相关阅读:
    ueditor 视频上传 cookie丢失问题
    asp分块读取解决ueditor 上传文件200K限制问题
    thinkcmf上传到阿里云虚拟主机后报错
    TP5 apache服务器fastcgi模式下rewrite重写
    Nginx实战之反向代理WebSocket的配置实例
    CentOS7安装Supervisor
    webservice发送带有头信息的数据
    分布式系统 杂记
    docker网络学习笔记
    php 跨域处理
  • 原文地址:https://www.cnblogs.com/wscy/p/4898967.html
Copyright © 2020-2023  润新知