函数
2018-06-29 23:46:58 0 举报
函数
作者其他创作
大纲/内容
为什么要学这些?这是通用的。scala,haskel,js,lodash,ramda,imuutable,colojue都是一个思路,顶多reduce,fold,of,bind,join,flatMap,mergeMap。Monad。群。combine,
[1][2][4][2] = map(d)([1])[4] = map(d)[2]map(dd) = map(d) * map(d)
f(x)
两个空间的元素,有着同构的关系。这就是线性代数的假设,或者说是公理。最重要的东西。所有的定力和推论都是这个假设衍生出来的。
以上是从概念上理解Observable,下面是从实现上理解Observable。最后来一个例子。能做的事情太多了。任何一个东西都是一个流。
整个函数式,就是在集合的概念上建立起来的。map,flatMap,万物皆集合。逻辑学。三段论。就是集合逻辑。a是b的自己,b是c的自己,那么a就是c的自己。函数式有一个monad的概念。就是范畴的概念。Maybe,Ethier,Future,Observable。、、、、、、monad的概念。1.为了compose,当不能compose时,编程monad后再compose。2.科利华,为了compose3.obserble,为了compose4.redux,为了compose5.jsx,为了compose组合优于继承模型 : y = f(x)。g2,的理论基础是图形语法,就是为了函数的组合。组件,就是为了组合。rxjs为了组合。矩阵乘法,就是函数的复合。机器学习,少波在的时候,就说过,y=fx的映射关系。tb再用。石墨再用。很多公司再用。saga就是换了一种写法。并不能减轻复杂度。saga和redux-thunk没有区别。除了多了几个操作符外,flatMap,map。
of,map,flatMap它们到底是什么概念?是函子
f
线性映射
x = y + zy = c * x
B
先讲集合,再讲函数。再讲线性空间。引出范畴的概念。两个范畴,或者两个空间是同构的。然后我们大家对空间有一个比较直觉的印象。Array of ,map,flatMap
抽象,反直觉,直觉,写起来特别简单,读起来特别简单,不容易出bug,容易测试,容易复用,容易打散了组合起来。容易发现本质
1 2 42 = d(1)4 =d(2)dd = d * d
f(x) = f(y) + f(z)f(y) = c * f(x)
这个map封装了批量的逻辑。有两个好处,不用写for循环了。逻辑变得特别简单。特别容易组合。
严谨,灵活,高内聚低耦合,容易组合,易读易写。
函数的概念是建立在集合的概念上的。函数就是两个集合的一个一对一或者多对一的关系。自变量,相。
x
两种风格。一种是点操作符。一中是数学形式的。
它和线性代数完全共享了一个数学形式。编程里特别容易封装和抽象。
A
Observable就是一个数组。是一个时间线上的数组。map,flatMap,of,一百多个操作符。就是一个数组的变形。所有的逻辑都是数组的变形。把一个冗余的数组变成一个你想要的最简单的数组就行了。如何实现呢?就是泛函数,栈,数据冒泡,惰性计算。降低复杂度,方向,而且是线性的。
Observable就是数组。操作符就是函子。要维持同构的一种关系。
0 条评论
下一页