随笔分类 - 抽象类型
摘要:最近看swift的范型和typeclass很辛苦,一点也摸不着头绪; 所以总结了以下类型系统的运算法则,以简化类型的转化、组合、变换等规则; is-a has-a use-a like-a as-a extension-a assign-a like-a-default 一、类型分类: 1、norm
阅读全文
摘要:主要目标是提供抽象能力和解决值类型的多态问题 Actually, Abrahams says, those are all attributes of types, and classes are just one way of implementing a type. Yet, they exac
阅读全文
摘要:泛型编程思想:复合类型的抽象和代码复用
阅读全文
摘要:类型运算: 类型指定、类型约束、类型依赖; 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。 https://www.cnblogs.com/arxive/p/6179972.html 因而函数重载是一种多态,而这样的多态被称作ad-hoc多态。 泛型程序设计(generic pro
阅读全文
摘要:多态的本意:是抽象类型具体实现的多样化; 然后对具体类型的行为,作出或相同或不同的解释; 多态是一个类型理论的名词;对抽象类型的行为作出了解释; 抽象类型的指代作用举例: 这个牛是一头白牛,这个牛(这头白牛)........ The most commonly recognised major cl
阅读全文
摘要:两个方面: 1、抽象类型的具体化; 2、方法调用的解释 同一个接口方法调用在运行时,针对不同的抽象类型具体化变量输入,具有不同的解释; 解释机制: 编译器插入:查找、绑定、执行; 运行时解释:查找、绑定、执行;对全部消息调用进行解释? 同一个接口函数在接收到不同的接口实现时,存在不同的解释;
阅读全文
摘要:泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。 基础部分: 与类型无关的变量和函数,通用部分; 扩展部分(swift): 与类型相关的函数其它扩展; 泛型关注通用的算法和数据组织形式; 关注与类型无关的算法和数据组织形式; 偏重数据的泛型(强泛型成员变量)关注数据
阅读全文
摘要:scalaz功能基本上由以下三部分组成: 1、新的数据类型,如:Validation, NonEmptyList ... 2、标准scala类型的延伸类型,如:OptionOps, ListOps ... 3、通过typeclass的随意多态(ad-hoc polymorphism)编程模式实现的大
阅读全文
摘要:函数式编程的类型系统:typeclass Typeclass是带有关联构造类型的抽象接口,抽象接口的行为用于约束构造类型。 构造类型实现了抽象接口的行为约束,就称这个实现为这个构造类型的函子。 要素:1、关联的构造类型;2、建立在这个构造类型上的的约束。 3、构造类型的关联类型的概念与行为,及与构造
阅读全文
摘要:monad是高阶抽象类型; 包含类型构造器; monad抽象的核心是类型封装和类型转化(map)。 实现monad的的类型必须实现(基础)类型的封装和类型转化的功能; 在此基础上实现其他的功能(基本依赖于map); 实现类型的衍生功能依赖于map的实现;
阅读全文
摘要:所谓的抽象:只声明、未定义; 抽象机制决定了软件的架构; 关键词:动态、扩展、多态 抽象的载体: 类型抽象:协议、接口、虚基类、抽象类、泛型、基类、高阶类型; 函数抽象:高阶函数、依赖抽象类型的函数; 抽象的具体化: 继承、实现、构造; 抽象类型变量的声明(抽象的关联): 变量、参量、返回值; 抽象
阅读全文
摘要:具体类型:能够初始化; 抽象类型:不能直接初始化; 类型参量:泛型和高阶类型的通道; 类型约束:泛型到高阶类型的通道。 基础类型; 结构类型; 容器类型; 高阶类型; 泛型、抽象类型: 类型是否能够直接初始化。 低阶类型与高阶类型的转化。
阅读全文
摘要:对泛型的类型添加约束,从而使泛型类型的变量具有某种通用操作。 再使用这些操作,参与到其它操作中。 In computer science, a type class is a type system construct that supports ad hoc polymorphism. This
阅读全文
摘要:Functor、Applicative 和 Monad Posted by 雷纯锋Nov 8th, 2015 10:53 am Functor、Applicative 和 Monad 是函数式编程语言中三个非常重要的概念,尤其是 Monad ,难倒了不知道多少英雄好汉。事实上,它们的概念是非常简单的
阅读全文