Pretty print ByteString в шестнадцатеричное полубайтное представление

Какой идиоматический способ трактовать байтовую цепочку полубайтово и красиво печатать ее шестнадцатеричное (0-F) представление?

putStrLn . show . B.unpack
-- [1,126]

Что, после дальнейшей работы

putStrLn . show . map (\x -> N.showIntAtBase 16 (DC.intToDigit) x "") . B.unpack
["1","7e"]

Но на самом деле мне нужно

["1","7","e"]

Или еще лучше

['1','7','e']

Я мог бы изменить ["1", "7e"], но эту манипуляцию со строкой, тогда как я бы предпочел манипуляции с числами. Нужно ли мне переходить к смещению и маскированию числовых значений?

12
задан xrl 7 December 2011 в 08:39
поделиться