From callback to (Future -> Functor -> Monad) 這篇寫得很好,雖然是用Javascript實做,不過還是值得一看。目前我的能力還不足以使用C++重寫一次,先用殘破的Javascipt來練習吧。
Callback
1 | fs.readFile('...', function (err, data) { |
這就是continuation-passing style
。最大的問題就是nested callback之後,整個程式碼雜亂無章,難以維護。因此想了很多方法來改善流程。
Future
現在各大語言都有Future跟Promise了,Javascript的版本可以參考上面那篇文章的實做。