摘要:
惰性求值的本质是计算保存、计算构建和计算触发机制实现。 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 阅读全文