我坚持使用attoparsec,我无法返回有关它的"嵌入式"的值.
我试图解析一个文件:
type
value
type
value
...
Run Code Online (Sandbox Code Playgroud)
例如:
0 -- code for a string value
hello
70 -- code for an int value
10
0
world
20 -- code for a double value
5.20
Run Code Online (Sandbox Code Playgroud)
我目前的数据类型是:
data KeyValue = forall a. (Typeable a, Show a, Eq a) => KeyValue (Int, a)
instance Eq KeyValue where -- as I need to test equality
KeyValue (code1, value1) == KeyValue (code2, value2) =
code1 == code2 && case cast value2 of
Just value2' -> …Run Code Online (Sandbox Code Playgroud) 我正在使用haskell和gtk2hs启动GUI.我有一个笔记本小部件,我想用"F1,F2 ... F11"键切换页面.
我的工作代码是:
import Control.Monad.Trans (liftIO)
import Graphics.UI.Gtk
main = do
initGUI
builder <- builderNew
builderAddFromFile builder "M62.glade"
window <- builderGetObject builder castToWindow "window1"
notebook <- builderGetObject builder castToNotebook "notebook1"
window `on` keyPressEvent $ tryEvent $ do "F1" <- eventKeyName
liftIO $ notebookSetCurrentPage notebook 0
window `on` keyPressEvent $ tryEvent $ do "F2" <- eventKeyName
liftIO $ notebookSetCurrentPage notebook 1
window `on` keyPressEvent $ tryEvent $ do "F3" <- eventKeyName
liftIO $ notebookSetCurrentPage notebook 2
window `on` keyPressEvent $ …Run Code Online (Sandbox Code Playgroud)