天天看點

函數式程式設計-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
           

謝謝觀看!!!

繼續閱讀