我有一组五个函数,可以称为五种方法之一.我是这样用patern-matching表达的,
type Configure = ReaderT Config IO ()
data Step = PreVal
| PreProc
| Proc
| PostProc
| PostVal
foo :: Step -> Configure
foo PreVal = do some stuff
foo PreProc = do some stuff
Run Code Online (Sandbox Code Playgroud)
等等,bar并baz设置相似
我知道如何用来sequence调用一系列动作.鉴于[Step],我怎么能去打电话[foo,bar,baz].按顺序,同时也调用每个可能的步骤.
所以它应该这样做
foo PreVal
foo PreProc
...依此类推
bar Preval
bar PreProc
...等等
baz......
mapM_ (\ f -> mapM_ f [PreVal, PreProc, Proc, PostProc, PostVal]) [foo, bar, baz]
Run Code Online (Sandbox Code Playgroud)