是否存在一些智能延遲交互IO操作後出現的相互依賴純計算的路由?我正在閱讀兩個配置文件,第一個識別第二個配置文件,但第二個配置文件確定第一個配置文件的解釋。懶惰交織IO單元內包含的純粹計算
import qualified Data.ByteString.Char8 as BS
main = do
...
f_state <- BS.readFile fn_state
let cfg_state' = procStateConfig' f_state
f_base <- BS.readFile $ cfg_base_fn cfg_state'
let cfg_base = procBaseConfig f_base
let cfg_state = procStateConfig f_state cfg_base
...
我很好奇,如果我能避免使procBaseConfig
和procStateConfig
,每個執行,直到它需要與其他信息相互遞歸編寫這個額外的功能procStateConfig'
。
特別是,我也許可以通過procBaseConfig f_state undefined
更換procStateConfig'
如果我無視一切取決於cfg_base
的東西,但是這不工作這麼天真。
我想這可能會工作,如果我不需要記錄cfg_state
的cfg_base_fn
元素爲第二BS.readFile
,但目前看起來很難。而且我寧願折兩個BS.readFile
調用進入proc..
cals。
如果你想,你可以通過重新使用'mfix'來避免'DoRec' – singpolyma 2012-11-21 20:09:42