随笔分类 -  函数式编程

上一页 1 2 3 4 5 6 ··· 8 下一页
摘要:函数式编程:面向可复用的map和pipeline机制的编程语言 阅读全文
posted @ 2019-07-29 10:33 zzfx 阅读(329) 评论(0) 推荐(0) 编辑
摘要:历史来源 讲述历史来源,不喜欢的可以跳过。但是我个人认为这对理解有帮助。 在计算机的世界中,有两位巨擘对问题的可计算性做了模型化描述[4]。 一位是阿兰.图灵(Alan Turing),他提出的图灵机。计算机系的各种学科中都充斥着这个概念,假设有一个纸带和一个打孔机,然后有一套指令,能够控制打孔机在 阅读全文
posted @ 2019-07-26 18:52 zzfx 阅读(236) 评论(0) 推荐(0) 编辑
摘要:命令式编程 = 计算步骤 + 状态 函数式编程 = 函数(映射)构造 + 输入、输出 https://www.cnblogs.com/feng9exe/p/10179364.html 阅读全文
posted @ 2019-07-26 18:14 zzfx 阅读(278) 评论(0) 推荐(0) 编辑
摘要:函数式编程函数的组合方式 1、高阶函数 2、尾调用+返回偏函数; 3、monad类型链 函数式编程的最大问题是复杂映射表述能力。 阅读全文
posted @ 2019-07-26 16:28 zzfx 阅读(337) 评论(0) 推荐(0) 编辑
摘要:语言的本质是对世界的表达能力。 函数式编程语言强于计算流的表达; 映射(函数) 域 组合(连接、结合) monand 函数式编程强于计算流的表达,弱于其他方面的表达。 函数式编程强调使用函数机制解决问题的方案,而不是对世界状态(以及状态维护)的描述。 编程范式 编程语言主要有三种类型[3]: 命令式 阅读全文
posted @ 2019-07-26 16:25 zzfx 阅读(310) 评论(0) 推荐(0) 编辑
摘要:要素: 1、高阶函数:reduce; 2、处理函数:reducer; 3、数据:可以是具体数据、签名相同的普通函数、签名相同的高阶函数; reduce(reducer, datas(data or funciton), initResult(optional)) 一、平凡数据处理 1 In [5]: 阅读全文
posted @ 2019-07-12 15:07 zzfx 阅读(267) 评论(0) 推荐(0) 编辑
摘要:一、函数的结合方式 组合、pipeline 二、block的环境变量 三、函数变量修饰符 异步、@escape 四、适用范围 数据与事件的流式处理 阅读全文
posted @ 2019-07-01 15:44 zzfx 阅读(139) 评论(0) 推荐(0) 编辑
摘要:In mathematics, a function is a relation between a set of inputs and a set of permissible outputs with the property that each input is related to exac 阅读全文
posted @ 2019-06-27 16:26 zzfx 阅读(493) 评论(0) 推荐(0) 编辑
摘要:函数式编程的基本特征之一就是 类型到类型之间的映射; (T item) => (Y item) (A, B, C) =>D map(array<T> , (T item) => (Y item)) => array<Y> moand[array<T>>]map((T item) => (Y item 阅读全文
posted @ 2019-06-13 15:42 zzfx 阅读(302) 评论(0) 推荐(0) 编辑
摘要:is-a:函数的实现与函数类型的关系; has-a:匿名(闭包)函数的创建者与匿名函数的关系;匿名函数与环境和上下文(函数)的关系; use-a:高阶函数与参量函数的关系; 函数式编程的基本功之一就是: 识别函数、理清函数之间的关系; 阅读全文
posted @ 2019-06-13 15:03 zzfx 阅读(331) 评论(0) 推荐(0) 编辑
摘要:一、函数的识别: 1、router.beforeEach:主函数、高阶函数、入口函数; 2、匿名参量函数:处理跳转过程中的附加逻辑 (to, from, next) => { if (to.matched.some(record => record.meta.requiresAuth)) { // 阅读全文
posted @ 2019-06-13 14:48 zzfx 阅读(852) 评论(0) 推荐(0) 编辑
摘要:函数式编程中有一种模式是通过组合多个函数的功能来实现一个组合函数。一般支持函数式编程的工具库都实现了这种模式,这种模式一般被称作compose与pipe。以函数式著称的Ramda工具库为例。 const R = require('ramda'); function inc (num) { retur 阅读全文
posted @ 2019-06-13 11:04 zzfx 阅读(314) 评论(0) 推荐(0) 编辑
摘要:将平凡对象转化为monand对象; 将monand对象串联起来进行业务处理。 阅读全文
posted @ 2019-06-06 11:27 zzfx 阅读(231) 评论(0) 推荐(0) 编辑
摘要:范畴是一系列有联系的概念的集合; 类型关乎复合 范畴论与箭头的复合有关。但是并非任意两个箭头都可以复合。一个箭头的目标对象必须与下一个箭头的源对象相同,这样的两个箭头方能复合。在编程中,我们将一个函数的返回结果传递给另一个函数。如果目标函数不能正确的解析源函数传递来的数据,程序就不会工作。首尾必须相 阅读全文
posted @ 2019-05-16 17:07 zzfx 阅读(771) 评论(0) 推荐(0) 编辑
摘要:一、纯函数: 函数:(只)参量依赖、解决确定、环境无修改。 函数与输入、输出、环境的关系。 二、副作用 (Side Effect)是指函数或者表达式的行为依赖于外部世界。具体可参照Wiki上的定义,副作用是指 1)函数或者表达式修改了它的SCOPE之外的状态 2)函数或者表达式除了返回语句外还与外部 阅读全文
posted @ 2019-05-10 18:37 zzfx 阅读(954) 评论(0) 推荐(0) 编辑
摘要:一、函数的类型: 1、输入输出的映射形式; 2、定义了访问函数时的调用约定;cpu在访问函数是参量的布局形式; 3、相同函数类型的变量可以相互赋值; 函数作为类型是函数式编程的基石; 二、函数的变量: 定义函数类型-》定义变量-》给 变量赋值; 常见形式: 常指针变量:函数类型 = 函数实现; 函数 阅读全文
posted @ 2019-03-25 21:27 zzfx 阅读(651) 评论(0) 推荐(0) 编辑
摘要:高阶函数负责数据的单次映射; monad负责数据处理流的串联,并使得串联函数具有相同的形式。 同时moand负责基础类型和高阶类型间的转换。 阅读全文
posted @ 2019-03-11 17:04 zzfx 阅读(323) 评论(0) 推荐(0) 编辑
摘要:类型的作用 定义数据的组织形式; 定义类型与操作的结合形式; 类型系统设计的一个重要指标是给类型添加操作的方式。 给类型添加操作。 如何给类型添加操作? 如何生成类型; 阅读全文
posted @ 2019-03-11 15:59 zzfx 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1、单体(数据)映射:基本操作;数据的单次映射; 2、管道流:数据的流程化处理 基础是monand类型,形式是声明式编程; Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件,让它们组成一条直线的工作流。这样给定一个完整的输入,经过各个组件的先后协同处理,得到唯一的终于输出。 阅读全文
posted @ 2019-03-11 15:32 zzfx 阅读(443) 评论(0) 推荐(0) 编辑
摘要:<高阶函数定义了高阶类型的处理(映射)、低阶函数处理了低阶类型的映射,高阶函数依赖于低阶函数> 高阶函数的特点: 1、定义的高阶函数本身的实现 ; 2、定义了参量函数的接口:输入、输出; 3、定义了高阶函数的功能部分对输入函数的引用或使用方式。 语义:定义高阶函数并声明混入函数的接口 本质是暴露低阶 阅读全文
posted @ 2019-03-11 11:53 zzfx 阅读(1516) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页