随笔分类 -  前端汇总 / 函数式编程

摘要:在函数式编程中如何把副作用控制在可控的范围内,异常处理,异步操作等 什么是Functor 容器:包含值和值的变形关系(这个变形关系就是函数) 函子:是一个特殊的容器,通过一个普通的对象来实现,该对象具有map方法,map方法可以运行一个函数对值进行处理(变形关系); class Container{ 阅读全文
posted @ 2022-01-25 16:12 flyall 阅读(59) 评论(0) 推荐(0)
摘要:Point Free:把数据处理的过程定义成与数据无关的合成运算,不需要用到代表数据的那个参数,只要把简单的运算步骤合成到一起,在使用这种模式之前我们需要定义一些辅助的基本运算函数。 不需要指明处理的数据 只需要合成运算过程 需要定义一些辅助的基本运算函数 const f=fp.flowRight( 阅读全文
posted @ 2022-01-25 15:52 flyall 阅读(100) 评论(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 阅读(252) 评论(0) 推荐(0)
摘要:函数组合 纯函数和柯里化很容易写出洋葱代码h(g(f(x))) 获取数组的最后一个元素再转换成大写字母,_.toUpper(_.first(_.reverse(array))) 函数组合可以让我们把细粒度的函数重新组合生成一个新的函数 函数组合(compose):如果一个函数要经过多个函数处理才能得 阅读全文
posted @ 2022-01-25 14:46 flyall 阅读(94) 评论(0) 推荐(0)
摘要:柯里化(Haskell Brooks Curry) 使用柯里化解决硬编码问题 //function checkAge(age){ //let min=18; //return age>=min; //} //普通纯函数 //function checkAge(min,age){ //return a 阅读全文
posted @ 2021-12-28 16:05 flyall 阅读(99) 评论(0) 推荐(0)
摘要:纯函数 相同的输入永远会得到相同的输出,而且没有任何可观察的副作用。 纯函数类似于数学中的函数(用来描述输入和输出之间的关系),y=f(x); lodash 是一个纯函数的功能库,提供了对数组、数组、数字、对象、字符串、函数等操作的一些方法 数组的slice和splice分别是:纯函数和不纯的函数 阅读全文
posted @ 2021-12-28 14:52 flyall 阅读(111) 评论(0) 推荐(0)
摘要:闭包(Closure):函数和其周围的状态(词法环境)的引用捆绑在一起形成闭包。 可以在另一个作用域中调用一个函数的内部函数并访问到该函数的作用域中的成员。 //函数作为返回值 function makeFn(){ let msg='Hello function'; return function( 阅读全文
posted @ 2021-12-28 12:43 flyall 阅读(42) 评论(0) 推荐(0)
摘要:什么是高阶函数 高阶函数(Higher-order function) 可以把函数作为参数传递给另一个函数 可以把函数作为另一个函数的返回结果 函数作为参数 在编程过程中会写很多函数,需要测试这些功能函数的运行结果,但是我们并不需要操作dom,可以使用node的环境来进行测试,就不需要创建页面了。 阅读全文
posted @ 2021-12-27 22:36 flyall 阅读(129) 评论(0) 推荐(0)
摘要:函数式编程 什么是函数式编程? 函数式编程的特性(纯函数、柯里化、函数组合等) 函数式编程的应用场景 函数式编程库——Loadash ##为什么需要函数式编程 函数式编程是被React带火的:React的高阶组件使用了高阶函数来实现,高阶函数就是函数式编程的一个特性。 流行框架在趋向函数式编程。 函 阅读全文
posted @ 2021-12-27 21:38 flyall 阅读(143) 评论(0) 推荐(0)