摘要: 在函数式编程中如何把副作用控制在可控的范围内,异常处理,异步操作等 什么是Functor 容器:包含值和值的变形关系(这个变形关系就是函数) 函子:是一个特殊的容器,通过一个普通的对象来实现,该对象具有map方法,map方法可以运行一个函数对值进行处理(变形关系); class Container{ 阅读全文
posted @ 2022-01-25 16:12 flyall 阅读(49) 评论(0) 推荐(0)
摘要: Point Free:把数据处理的过程定义成与数据无关的合成运算,不需要用到代表数据的那个参数,只要把简单的运算步骤合成到一起,在使用这种模式之前我们需要定义一些辅助的基本运算函数。 不需要指明处理的数据 只需要合成运算过程 需要定义一些辅助的基本运算函数 const f=fp.flowRight( 阅读全文
posted @ 2022-01-25 15:52 flyall 阅读(77) 评论(0) 推荐(0)
摘要: lodash的fp模块提供了实用的对函数式编程友好的方法 提供了不可变auto-curried iteratee-first data-last的方法 //lodash模块 const _=repuire('lodash'); _.map(['a,b,c'],_.toUpper); //=>['A' 阅读全文
posted @ 2022-01-25 15:33 flyall 阅读(235) 评论(0) 推荐(0)
摘要: 函数组合 纯函数和柯里化很容易写出洋葱代码h(g(f(x))) 获取数组的最后一个元素再转换成大写字母,_.toUpper(_.first(_.reverse(array))) 函数组合可以让我们把细粒度的函数重新组合生成一个新的函数 函数组合(compose):如果一个函数要经过多个函数处理才能得 阅读全文
posted @ 2022-01-25 14:46 flyall 阅读(83) 评论(0) 推荐(0)