摘要: 面向签名编程 阅读全文
posted @ 2018-03-26 22:50 zzfx 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 函数编程支持函数作为第一类对象,有时称为闭包或者仿函数(functor)对象。实质上,闭包是起函数的作用并可以像对象一样操作的对象。与此类似,FP 语言支持高阶函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起 阅读全文
posted @ 2018-03-26 19:26 zzfx 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 函数式编程 函数式编程是种编程方式,它将电脑运算视为函数的计算。 而函数式编程是面向数学的抽象,将计算描述为一种表达式求值,一句话,函数式程序就是一个表达式。 面向计算?! In computer science, functional programming is a programming pa 阅读全文
posted @ 2018-03-26 19:20 zzfx 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 关键词:运算、转换、扩展、封装。 函数式编程是围绕高阶函数进行的,设计的核心在于高阶函数的设计。 1、函数式编程通过函数的复合生成更大的结构; 2、函数的操作分为分解和复合;分解即为柯里化,可以分为偏函数分解和彻底分解。复合即为待定系数和调用约定。 3、函数的运算最终转化为代数运算。 4、monad 阅读全文
posted @ 2018-03-26 17:29 zzfx 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 维基百科中对偏函数 (Partial application) 的定义为: In computer science, partial application (or partial function application) refers to the process of fixing a num 阅读全文
posted @ 2018-03-26 15:01 zzfx 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 什么是泛函编程(Functional Programming)?泛函编程就是用函数编写程序。这个回答太抽象,等于没说。 再说清楚一点:泛函编程就想砌积木一样把函数当成积木块,把函数的输出输入作为积木的楔子和楔孔,把一个函数的输出当作另一个函数的输入组合成一个更大的函数。整个砌积木的过程就是泛函编程。 阅读全文
posted @ 2018-03-26 11:59 zzfx 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 函数式编程关心数据的映射,命令式编程关心解决问题的步骤 我想稍微改一下,使其更数学化一点。 函数式编程关心类型(代数结构)之间的关系,命令式编程关心解决问题的步骤 函数式编程中的lambda可以看成是两个类型之间的关系,一个输入类型和一个输出类型。lambda演算就是给lambda表达式一个输入类型 阅读全文
posted @ 2018-03-26 11:36 zzfx 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 函数式语言当然还少不了以下特性: 高阶函数(Higher-order function) 偏应用函数(Partially Applied Functions) 柯里化(Currying) 闭包(Closure) 高阶函数就是参数为函数或返回值为函数的函数。有了高阶函数,就可以将复用的粒度降低到函数级 阅读全文
posted @ 2018-03-26 11:35 zzfx 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 相信大家平时或多或少听过不少关于“函数式编程” (FP)相关的词语,有些Geek经常吹捧函数式的优点或者特性比如:纯函数无副作用、不变的数据、高阶函数、流计算模式、尾递归、柯里化等等,再加上目前的函数式理论越来越多的应用于工程中,OCaml,clojure, scala等FP语言日渐火爆。本编文章, 阅读全文
posted @ 2018-03-26 11:21 zzfx 阅读(310) 评论(0) 推荐(0) 编辑