Я хочу разделить ByteString
на слова так:Haskell Как конвертировать Char в Word8
import qualified Data.ByteString as BS
main = do
input <- BS.getLine
let xs = BS.split ' ' input
Но оказывается, что GHC не может преобразовать литеру в Word8
сам по себе, так что я получил:
Couldn't match expected type `GHC.Word.Word8'
with actual type `Char'
In the first argument of `BS.split', namely ' '
In the expression: BS.split ' ' input
Hoogle ничего не обнаружил с тиковой сигнатурой Char -> Word8
и Word.Word8 ' '
является недопустимым конструктором типа. Любые идеи о том, как исправить это?
Не используйте ' ByteString' для текста! Вместо этого используйте ['Text'] (http://hackage.haskell.org/package/text). –
@ DanielWagner Почему нет? Это быстрее, чем 'ByteString'? – Andrew
'Text' является дружественным к юникоду, поэтому ваши строки будут строками во всех странах. 'ByteString' предназначен для двоичного разбора, доступа к необработанной памяти и не может обрабатывать ничего, кроме ascii или latin1. –