随笔分类 -  函数式编程

摘要:容器类型:高阶类型; 例子:集合类容器、枚举类容器、结果类容器、适配类容器。 功能: 1、值类型的封装和解封; 2、值类型的管理:存储、遍历、查询;为高阶函数; 3、惰性求值的管理:处理函数的保存、处理函数的执行(apply)。 值类型: 代表数据:用于进行处理,对应transform。 值类型的产 阅读全文
posted @ 2018-10-14 11:05 zzfx 阅读(247) 评论(0) 推荐(0) 编辑
摘要:函数式编程的演进 数据结构与算法的结合方式:https://www.cnblogs.com/feng9exe/p/9785664.html 古典编程:数据结构+算法(C语言)。 算法的上下文通过参量和全局变量确定; 演进方向:面向对象、函数式编程; 面向对象:运算的上下文通过对象和参量确定; 对象的 阅读全文
posted @ 2018-10-12 17:31 zzfx 阅读(174) 评论(0) 推荐(0) 编辑
摘要:高阶函数与接口混入和java匿名类。 高阶函数中的组件(参量)函数相当于面向对象中的混入(接口)类。 public abstract class Bird { private String name; public String getName() { return name; } public v 阅读全文
posted @ 2018-10-11 10:50 zzfx 阅读(334) 评论(0) 推荐(0) 编辑
摘要:纯虚类 接口混入类 寄生类 typedef: transformX: (Value) -> U func transformFun(:value:Value) -> U 基类: public func map<T>(_ transform: (Element) throws -> T) rethro 阅读全文
posted @ 2018-10-10 19:05 zzfx 阅读(214) 评论(0) 推荐(0) 编辑
摘要:高阶函数的本质是二阶构造、分离、配置和复用 相对于高阶函数,面向对象类似的功能是通过继承和多态实现的; func composeFun(){ //virtualFun fun() this.fun() } 高阶函数本身相当于基类; 配置函数+高阶函数相当于子类。 配置函数在高阶函数声明中的存在相当于 阅读全文
posted @ 2018-10-10 15:36 zzfx 阅读(296) 评论(0) 推荐(0) 编辑
摘要:高阶函数是以参量和返回值的形式引用其它函数的函数; 高阶函数是开放的和变化的。 相对于基本函数来说,高阶函数提供了可配置性、变化性、开放性。 声明: 高阶函数本身的声明,引用函数的声明; 为高阶函数和引用(参量、组件)函数提供上下文; 定义: 高阶函数本身的定义; 引用(组件)函数的调用; 调用: 阅读全文
posted @ 2018-10-10 14:54 zzfx 阅读(329) 评论(0) 推荐(0) 编辑
摘要:Shorthand Argument Names Swift automatically provides shorthand argument names to inline closures, which can be used to refer to the values of the clo 阅读全文
posted @ 2018-10-10 11:44 zzfx 阅读(229) 评论(0) 推荐(0) 编辑
摘要:Swift 的 extension 机制很强大,不仅可以针对自定义的类型,还能作用于系统库的类型,甚至基础类型比如 Int。当在对系统库做 extension 的时候,就会涉及到一个命名冲突的问题。Objective-C 时代的通行解决办法是在扩展方法名字的最前面加上 XXX_ 形式的前缀。这种形式 阅读全文
posted @ 2018-09-25 17:42 zzfx 阅读(716) 评论(0) 推荐(0) 编辑
摘要:Functor,即函子,是 Haskell 中普遍存在的、最基本的类型类。你可以用以下两种方式来理解 Functor: 它代表某种容器,该容器能够将某一函数应用到其每一个元素上。 它代表某种“可计算上下文”(computational context)。 https://www.cnblogs.co 阅读全文
posted @ 2018-09-25 17:35 zzfx 阅读(209) 评论(0) 推荐(0) 编辑
摘要:面向类型编程; 面向对象编程与业务和属性相关; 面向类型编程与函数的符合相关 ; 阅读全文
posted @ 2018-07-07 21:42 zzfx 阅读(174) 评论(0) 推荐(0) 编辑
摘要:monad-类型构造与转换器 阅读全文
posted @ 2018-06-22 16:03 zzfx 阅读(175) 评论(0) 推荐(0) 编辑
摘要:函数作为参数传递,只是组件的传递过程; 函数的执行过程是函数的配置、组建和执行的过程。 阅读全文
posted @ 2018-06-22 15:15 zzfx 阅读(183) 评论(0) 推荐(0) 编辑
摘要:https://kotlinlang.org/docs/reference/lambdas.html 阅读全文
posted @ 2018-06-12 23:44 zzfx 阅读(94) 评论(0) 推荐(0) 编辑
摘要:返回值:嵌套函数or闭包; 返回函数地址与表达式; 而不是计算结果。 参数:函数作为参数被传进高阶函数时,是作为值传递的; 在高阶函数内部,作为值的函数会被调用;高阶函数为此函数提供上下文。 作为入参的函数的函数签名的形参不是必须的。 除非作为匿名函数或闭包存在。 阅读全文
posted @ 2018-06-12 16:28 zzfx 阅读(182) 评论(0) 推荐(0) 编辑
摘要:偏函数应用指的是固化函数的一个或一些参数,从而产生一个新的函数。比如我们有一个记录日志的函数: 1: def log(level, message): 2: print level + ": " + message 3: 4: #usage 5: log("Warning", "this is on 阅读全文
posted @ 2018-06-11 16:34 zzfx 阅读(336) 评论(0) 推荐(0) 编辑
摘要:柯里化相当于函数重构; 偏函数相当于函数适配。 So, what is the difference between currying and partial application? As we stated before: Currying: Ability to decompose a fun 阅读全文
posted @ 2018-06-11 16:27 zzfx 阅读(426) 评论(0) 推荐(0) 编辑
摘要:函数式编程也遵循数据结构+算法的编程范式。 数据结构为高阶类型; 算法为算子,高阶函数。 函数式编程关心数据的映射,命令式编程关心解决问题的步骤 这里的映射就是数学上“函数”的概念—— 一种东西和另一种东西之间的对应关系。 这也是为什么“函数式编程”叫做“函数式编程”。 阅读全文
posted @ 2018-06-11 10:51 zzfx 阅读(322) 评论(0) 推荐(0) 编辑
摘要:高阶:意味着可变、变化;多态。 动态绑定。 阅读全文
posted @ 2018-06-08 23:55 zzfx 阅读(517) 评论(0) 推荐(0) 编辑
摘要:变量:传递、存取、变化。函数:传递、执行(结合)、操作。 函数作为参量、变量。 函数调用。 函数运算。 In computer science, function composition (not to be confused with object composition) is an act o 阅读全文
posted @ 2018-06-08 18:57 zzfx 阅读(139) 评论(0) 推荐(0) 编辑
摘要:泛函编程(23)-泛函数据类型-Monad http://www.cnblogs.com/tiger-xc/p/4461807.html https://blog.csdn.net/samsai100/article/details/71512702 阅读全文
posted @ 2018-06-08 18:49 zzfx 阅读(129) 评论(0) 推荐(0) 编辑