HaskellでIntからCharへの変換
その(1) Prelude> :t Data.Char.chr Data.Char.chr :: Int -> Char Prelude> Data.Char.chr 70 'F' Prelude> Data.Char.chr 102 'f' その(2) Prelude> :t Data.Binary.Put.putWord8 Data.Binary.Put.putWord8 :: GHC.Word.Word8 -> Data.Binary.Put.Put Prelude> :t Data.Binary.Put.runPut Data.Binary.Put.runPut :: Data.Binary.Put.Put -> Data.ByteString.Lazy.Internal.ByteString Prelude> :t (Data.Binary.Put.runPut . Data.Binary.Put.putWord8 ) (Data.Binary.Put.runPut . Data.Binary.Put.putWord8 ) :: GHC.Word.Word8 -> Data.ByteString.Lazy.Internal.ByteString Prelude> Prelude> (Data.Binary.Put.runPut . Data.Binary.Put.putWord8 ) 70 "F" Prelude> (Data.Binary.Put.runPut . Data.Binary.Put.putWord8 ) 102 "f" Prelude>
ちなみにこれはエラー
Prelude> :t Data.Binary.Put.runPut $ Data.Binary.Put.putWord8 <interactive>:1:26: Couldn't match type `GHC.Word.Word8 -> Data.Binary.Put.Put' with `Data.Binary.Put.PutM ()' Expected type: Data.Binary.Put.Put Actual type: GHC.Word.Word8 -> Data.Binary.Put.Put In the second argument of `($)', namely `Data.Binary.Put.putWord8' In the expression: Data.Binary.Put.runPut $ Data.Binary.Put.putWord8