zoukankan      html  css  js  c++  java
  • 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.属于相同类型的表达式,必然会有相同的属性。但拥有相同属性的表达式,却不一定属于相同的类型。

  • 相关阅读:
    weblogic 的应用 常见问题处理 db2 链接不上(转载)
    WebLogic简单的备份和恢复
    linux 切换用户之后变成-bash-x.x$的解决方法
    weblogic迁移随手记
    生产环境下Centos 6.5优化配置 (装载)
    查看db2表空间使用率
    Linux 之 rsyslog 系统日志转发(转载)
    windows下定时利用bat脚本实现ftp上传和下载
    rsyslog同步history日志(转载)
    linux比较指令comm、diff、grep -Ff
  • 原文地址:https://www.cnblogs.com/wscy/p/4898967.html
Copyright © 2011-2022 走看看