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

  • 相关阅读:
    基于Furion的.NET5 WebApi开发框架
    由react的todolist想到的
    react第三节-基础概念梳理
    uniapp引入字体图标与uniapp传入事件对象与自定义参数
    (react+tsx)函数式组件传参问题
    关于git正确clone指定分支
    关于‘react-app-rewried 不是内部或外部命令’的深度解析
    flex下的多行对齐与预处理器中使用nth-child选择器
    webpack(2)--webapck自身的配置
    webpack解析(1)
  • 原文地址:https://www.cnblogs.com/wscy/p/4898967.html
Copyright © 2011-2022 走看看