main :: IO ()
main = do
let a = ("teeeeeeeeeeeeest","teeeeeeeeeeeest")
b <- app a
print b
アプリは([char]、[char])ではなく(bytestring、bytestring)を期待します。どうすれば変換できますか?
main :: IO ()
main = do
let a = ("teeeeeeeeeeeeest","teeeeeeeeeeeest")
b <- app a
print b
アプリは([char]、[char])ではなく(bytestring、bytestring)を期待します。どうすれば変換できますか?
ASCII値のみが含まれている場合、または各の最後の8ビットのみに関心がある場合は、 String
sをByteString
sに変換できますData.ByteString.Char8.pack
(またはその遅延ByteString
バージョン)。String
Char
import qualified Data.ByteString.Char8 as C
main :: IO ()
main = do
let a = ("teeeeeeeeeeeeest","teeeeeeeeeeeest")
b <- app $ (\(x,y) -> (C.pack x, C.pack y)) a
print b
String
非ASCIIが含まれてChar
いて、最後の8ビット以外に関心がある場合は、などの他のエンコーディングが必要になりますData.ByteString.UTF8.fromString
。
あなたは試すことができます:
import qualified Data.ByteString.Char8 as B --to prevent name clash with Prelude
B.pack "Hello, world"
多くの便利な関数がここにあります:
http://www.haskell.org/ghc/docs/latest/html/libraries/bytestring/Data-ByteString-Char8.html
Data.ByteString.Lazy.Char8
怠惰なバイト文字列にも使用できます