求js函数式编程中各种函子如何运用?

在使用函数式编程中,发现在处理业务逻辑时使用curry、compose等方法使得开发体验有明显的提升

例如在一个购物车列表中我需要将用户加入的购物车的商品进行计总

// 购物车商品列表
const goodsList = [{
        selected: false, // 该商品是否被选中
        money: 300.14,   // 商品价格
        number: 0        // 商品数量
      },{
        selected: false, // 该商品是否被选中
        money: 300.15,   // 商品价格
        number: 0        // 商品数量
      }, ...]

// 要求计算金额总价,我们需要考虑:
// 单个商品的总价(单价 * 数量) caleGoodsTotal: (data: goodsList: number[]
// 所有商品价格              caleAllGoodsTotal: (data: number[]): number
// 对金额进行保留2位          formatMoney: (n: number): string

// compose:
let composeResult = compose(
                            formatMoney,
                            caleAllGoodsTotal,
                            caleGoodsTotal)
composeResult(goodsList) // '600.29'

// functor:
let functorResult = Funtor.of(goodsList)
                    .map(caleGoodsTotal)
                    .map(caleAllGoodsTotal)
                    .map(formatMoney) // Functor {value: '600.29'}

想问下关于函子中的Maybe、Monad、Either、IO...等等函子在实际项目中是怎么配合使用的,能不能举个栗子

阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题