随笔分类 - 函数式编程
摘要:函数编程中functor和monad的形象解释 函数编程中Functor函子与Monad是比较难理解的概念,本文使用了形象的图片方式解释了这两个概念,容易理解与学习,分别使用Haskell和Swift两种语言为案例。 虽然Swift并不是一个函数式语言,但是我们可以用更多点代码来完成与Haskell
阅读全文
摘要:lambda表达式是函数式编程中的匿名函数语法规范。 In computer programming, an anonymous function (function literal, lambda abstraction, or lambda expression) is a function d
阅读全文
摘要:函数式编程由回掉函数指针衍生; 响应式编程基础是关联操作的封装; 链式编程每一次操作的结果返回一个结构体。
阅读全文
摘要:函数式编程的本质在于计算的构建; 计算的构建依赖于函数是一等公民; 函数是一等公民所以函数支持,传输、返回、存储和计算; 而像变量一样的存储功能,使得计算的构建成为可能。
阅读全文
摘要:命令式编程的计算在编译时构建完成; 声明式编程的计算在运行时构建完成; 这里所谓的构建为关键节点的组合。 例如函数式编程,最底层或最基本的运算单元还是命令式编程。
阅读全文
摘要:函数式编程分为两部分: 1、运算的构建; 2、运算的执行。
阅读全文
摘要:命令式编程强调的是时序; 声明式编程强调的是逻辑; 函数式编程强调的是逻辑。
阅读全文
摘要:响应式编程关注起因与结果间的联系方式 响应:对事物的变化做出反应。
阅读全文
摘要:链式编程是函数式编程计算构建的一部分。 是计算构建器的实现。
阅读全文
摘要:面向对象: 一切皆对象;通过对象的构建和组合来模拟系统,最终通过这个系统来解决问题。 消息和信息在这个系统中流转。 语言的底层支持就是通过对象来构建以对象为单元的联系的系统。 函数式编程: 一切皆计算;这个系统就是通过计算单元的组合构建成更大的计算单元,从而完成对信息和信号的处理。 本质上就是构建一
阅读全文
摘要:惰性求值的本质是计算保存、计算构建和计算触发机制实现。 MASConstraint的实现是其典型案例。(本结论为错)。 [self.userIcon mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(15)
阅读全文
摘要:命令式关注实现细节; 声明式关注组成逻辑。 命令式编程强调执行上的顺序; 声明式编程强调逻辑上的行为和顺序。
阅读全文
摘要:定义映射(计算),执行映射(计算) 对于函数式编程来说,其只关心,定义输入数据和输出数据相关的关系,数学表达式里面其实是在做一种映射(mapping),输入的数据和输出的数据关系是什么样的,是用函数来定义的。 函数式编程思想:先构造计算树,然后执行计算树。 函数式编程的开发过程是编写计算实现、调用约
阅读全文
摘要:flattenMap使用步骤: 1.传入一个block,block类型是返回值RACStream,参数value 2.参数value就是源信号的内容,拿到源信号的内容做处理 3.包装成RACReturnSignal信号,返回出去。 flattenMap底层实现: 0.flattenMap内部调用bi
阅读全文
摘要:A monad is created by defining a type constructor M and two operations, bind and return (where return is often also called unit): The unary return ope
阅读全文
摘要:Functor的代码表示 接下来我们用Scala实现Monad的定义: 还有一种更为常见的定义方式,在Scala中Monad也是以这种方式出现: 要满足这两点,我们需要一个类型构造器 我们现在可以把这个定义再简化一些,类型的映射方法可以不用,并把它作为一个type class:
阅读全文
摘要:仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 In computer programming, a function object[a] is a construct allowing an
阅读全文
摘要:函数编程支持函数作为第一类对象,有时称为闭包或者仿函数(functor)对象。实质上,闭包是起函数的作用并可以像对象一样操作的对象。与此类似,FP 语言支持高阶函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起
阅读全文
摘要:函数式编程 函数式编程是种编程方式,它将电脑运算视为函数的计算。 而函数式编程是面向数学的抽象,将计算描述为一种表达式求值,一句话,函数式程序就是一个表达式。 面向计算?! In computer science, functional programming is a programming pa
阅读全文