1
Haskellで単純なバイナリファイルをData.Binary.Getモナドで解析しようとしています。HaskellでData.Binary.Getで単純なバイナリファイルを解析する
私のコードの簡易版は、次のようになります
data MsgString = Definition_msg {
msg_no :: Word16
} deriving (Show)
parseDef :: Get MsgString
parseDef = do
msg_no <- getWord16le
return $ Definition_msg msg_no
parseMain :: Get [MsgString]
parseMain = do
bit <- getWord8
msg <- parseDef
return msg:parseMain
そして、私が取得エラーは次のとおりです。
Prelude> :l example.hs
[1 of 1] Compiling Main (example.hs, interpreted)
example.hs:23:17:
Couldn't match expected type `[m MsgString]'
against inferred type `Get [MsgString]'
In the second argument of `(:)', namely `parseMain'
In the expression: return msg : parseMain
In the expression:
do { bit <- getWord8;
msg <- parseDef;
return msg : parseMain }
Failed, modules loaded: none.
誰もが私が間違って何を見ることができますか?
ありがとうございます!
(return msg) : parseMain
しかし、それは本当に唯一の問題ではありません。
ありがとうございます!私は今私が間違っていたものを見る。 :)プログラムの終了に関しては、私はこの問題を修正するまで延期しました。あなたの助けをもう一度ありがとう! – dirtdog