在ghci中解压缩IO ByteString

时间:2015-11-06 10:57:21

标签: haskell ghci

我正在尝试使用图像库在Haskell中进行一些图像处理。使用库打开图像需要ByteString类型。我想在ghci中测试库,但是当我加载文件时它的类型为IO ByteString并且无法使用。

如何解析ghci中ByteString类型的IO ByteString数据?

1 个答案:

答案 0 :(得分:5)

fmap教授纯函数如何用不纯的输入进行捣乱:

fmap :: (a -> b) -> IO a -> IO b

(=<<)教授不纯的函数如何使用不纯的输入:

(=<<) :: (a -> IO b) -> IO a -> IO b

当然,在ghci中,有一个方便的do - 符号可用作(=<<)的使用速记,所以如果你写的话

> x <- Data.ByteString.readFile "/path/to/image.jpg"

然后,即使x :: ByteString,您仍会在会话的剩余部分中绑定Data.ByteString.readFile "/path/to/image.jpg" :: IO ByteString