2015-11-06 2 views
1

Я пытаюсь сделать некоторые манипуляции с изображениями в Haskell с библиотекой изображений. Для открытия изображения в библиотеке требуется тип ByteString. Я хочу протестировать библиотеку в ghci, но когда я загружаю файл, он имеет тип IO ByteString и не может быть использован.Распаковка IO ByteString в ghci

Как я могу распечатать данные ByteString от IO ByteString типа в ghci?

ответ

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.

Смежные вопросы