IO函子

2021-08-29  本文已影响0人  湘兰沅芷

1.IO函子中的_value是一个函数,这里是把函数作为值来处理
2.IO函子可以把不纯的动作存储到_value中,延迟执行这个不纯的操作(惰性执行),包装当前的操作纯
3.把不纯的操作交给调用者来处理

// IO函子
const fp = require('lodash/fp')
class IO {
  static of (value) {
    return new IO(function () {
      return value
    })
  }
  constructor(fn) {
    this._value = fn
  }
  map(fn) {
    return new IO(fp.flowRight(fn, this._value))
  }
}
let r = IO.of(process).map(p => p.execPath)
console.log(r._value())
上一篇 下一篇

猜你喜欢

热点阅读