headを試してみる
headという関数を試してみました。
事前準備
StringをByteStringにする方法は、Hoogleで検索すると、Data.ByteString,Char8.packでした。
Prelude> :t Data.ByteString.Char8.pack Data.ByteString.Char8.pack :: String -> Data.ByteString.Internal.ByteString Prelude> Data.ByteString.Char8.pack "foo bar buzz" "foo bar buzz"
Data.ByteString.Char8のhead
Prelude> Prelude> :t Data.ByteString.Char8.head Data.ByteString.Char8.head :: Data.ByteString.Internal.ByteString -> Char Prelude> Data.ByteString.Char8.head $ Data.ByteString.Char8.pack "foo bar buzz" 'f'
Data.ByteString.headのhead
Prelude> :t Data.ByteString.head Data.ByteString.head :: Data.ByteString.Internal.ByteString -> GHC.Word.Word8 Prelude> Data.ByteString.head $ Data.ByteString.Char8.pack "foo bar buzz" 102 Prelude> Data.Text.head $ Data.Text.pack "あいうえお" '\12354' Prelude>
Data.Textのhead
Prelude> :t Data.Text.head Data.Text.head :: Data.Text.Internal.Text -> Char Prelude> Data.Text.head $ Data.Text.Encoding.decodeASCII $ Data.ByteString.Char8.pack "foo bar buzz" 'f'
普通(?)のhead
Prelude> :t head head :: [a] -> a Prelude> head "foo bar buzz" 'f' Prelude> Prelude>