IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

Haskellでバイナリの書き出し

まずは、型の確認。

Prelude> :t Data.ByteString.Lazy.putStr
Data.ByteString.Lazy.putStr
  :: Data.ByteString.Lazy.Internal.ByteString -> IO ()
Prelude> :t Data.Binary.Put.runPut
Data.Binary.Put.runPut
  :: Data.Binary.Put.Put -> Data.ByteString.Lazy.Internal.ByteString
Prelude> :t Data.Binary.Put.putWord8
Data.Binary.Put.putWord8 :: GHC.Word.Word8 -> Data.Binary.Put.Put
Prelude> 

ワンライナーで確認。

Prelude> Data.Binary.Put.runPut $ Data.Binary.Put.putWord8 65
"A"

Prelude> Data.Binary.Put.runPut $ Data.Binary.Put.putWord8 65 >> Data.Binary.Put.putWord8 97
"Aa"

Prelude> Data.ByteString.Lazy.putStr $ Data.Binary.Put.runPut $ Data.Binary.Put.putWord8 65
APrelude> 

Prelude> Data.ByteString.Lazy.putStr $ Data.Binary.Put.runPut $ Data.Binary.Put.putWord8 65 >> Data.Binary.Put.putWord8 97
AaPrelude> 

結局、showしてしまうので、ワンライナーだと無理か。。。