1
你好我正在尝试使用runGetState monad在Haskell中编写一个简单的二进制解析器。Haskell:runGetState和列表
但是,我面临解析字段列表的问题,我卡住了。
问题是,字段列表可能会不时变化,因此我想构建列表字段,然后使用地图读取它们。下面的代码片段:
readField field_type =
case (field_type) of
0 -> A1 <$> getWord8
132 -> A2 <$> getWord16be
134 -> A3 <$> getWord32be
parseData fields = return $ map (\x -> readField x) a
(fdata,input,no) <- return (runGetState (parseData [132,134,0]) input no)
我试过上面的解决方案没有运气。谁能告诉我我做错了什么?
请让我们知道是什么问题。有错误吗?不是预期的产出?只是为了帮助我们指导我们正在寻找的内容,而不必亲自编译和运行代码。 – luqui 2011-04-04 22:06:38