> :m + Data.Digest.Pure.MD5 > :t md5 md5 :: Data.ByteString.Lazy.Internal.ByteString -> MD5Digest
md5 関数は Data.ByteString.Lazy.Internal.ByteString から MD5Digest を作るので、
Haskellの文字列(List)から ByteString に変換する必要があります。
ByteString を作ってみます。
> Data.ByteString.Lazy.Char8.pack "hello" Chunk "hello" Empty > :t Data.ByteString.Lazy.Char8.pack "hello" Data.ByteString.Lazy.Char8.pack "hello" :: ByteString
md5 関数で MD5Digest を作ります。
> :m + Data.ByteString.Lazy.Char8 > md5 $ pack "hello,world" --=> 3cb95cfbe1035bce8c448fcaf80fe7d9 > :t md5 $ pack "hello,world" --=> md5 $ pack "hello,world" :: MD5Digest > show $ md5 $ pack "hello,world" --=> "3cb95cfbe1035bce8c448fcaf80fe7d9"
Haskell の文字列からMD5を算出して文字列にする関数を定義します。
import Data.Digest.Pure.MD5 import Data.ByteString.Lazy.Char8 toMD5String :: String -> String toMD5String = show.md5.pack
toMD5String "hello,world" --=> "3cb95cfbe1035bce8c448fcaf80fe7d9"