JS函数式编程-Functor
什么是函数式编程
函数式编程是一种编程范式,是一种构建计算机程序结构和元素的风格,它把计算看作是对数学函数的评估,避免了状态的变化和数据的可变
什么是函子(Functor)
functor中文名叫函子。需要有一个map方法返回对象本身,这样返回结果都被‘藏’在这个对象的_value中,funtor可以理解为一个容器,本身是一个可以返回自己的对象。
作用是控制副作用(IO)、异常处理(Either)、异步任务(Task)
使用场景
class Functor {
constructor(value) {
this._value = value
}
map(f) {
return new Functor(f(this._value))
}
value(f) {
return f(this._value)
}
}
// 把美元转换成人民币
const toRMB = s => new Functor(s)
.map(s => s.replace(/\$/), '')
.map(s => s * 7)
.value(s => s.toFixed(2))
console.log(toRMB('$299.99'))