通常wxHaskell程序看起來像StateT和WX GUI共存
main = do
run gui
gui = do
....
....
GUI必須IO a
類型,運行的類型爲IO a -> IO()
,也存在一些run
初始化程序。
我特林做到以下幾點:
data AppGlobals = AG { ... some data ... }
type MApp a = StateT AppGlobals IO a
但在這種情況下,GUI必須有類型gui :: MApp AppGlobals
。由於它的類型,不可能使用通常的IO monad語法,我的意思是我每次執行IO操作時都要使用liftIO
。
有沒有在wxHaskell中使用State monad的方便的可能性?將狀態手動傳遞給每個事件處理程序並不是很方便。
在WX和WXCore中有兩個略有不同的接口。在WXCore中使用'run',而在WX中使用'start'。他們有相同的類型。 – 2010-03-11 21:22:06