天天看点

函数式编程-IO函子篇

函数式编程-IO函子篇
IO函子简介
1、IO函子中的_value是一个函数,这里是把函数作为值来处理
2、IO函子可以把不纯的操作存储到_value中,延迟执行这个不纯的操作(惰性之行),包装当前的操作
3、把不纯的操作交给调用者来处理
           
案例演示
const fp = require('lodash/fp');

class IO {
    static of(value) {
        return new IO(() => {
            return value
        })
    }
    constructor(fn) {
        this._value = fn
    }
    map(fn) {
        return new IO(fp.flowRight(fn, this._value))
    }
}

let result = IO.of(process).map((data) => {
    return data.execPath
});
console.log(result); //IO { _value: [Function (anonymous)] }

console.log(result._value()); //C:\Program Files\nodejs\node.exe
           

谢谢观看!!!

继续阅读