01:08
なるほど。ByteString はこう使うのか。
hGetContents を override して、IO String ではなくて IO ByteString を返すようにするわけですね。ここの部分がよくわからなかったので前は諦めた。
bracket も新鮮。try-finally だそうな。
System.Environment というのの中に getProgName というのもあるのね。それを使って書けばよかった。
eagletmt2009/08/20 09:28override というよりは,hGetContents :: Handle -> IO ByteString のみをインポートするかんじですね.hGetContents :: Handle -> IO String は Prelude にはないので,明示的にインポートしなければ使えません.プログラム中で両方使いたい場合は,例えばimport System.IOimport qualified Data.ByteString as Bなどとして,hGetContents :: Handle -> IO String, B.hGetContents :: Handle -> IO ByteString のように使い分けられます.
edvakf2009/08/20 09:54丁寧にありがとうございます。qualified とか as の意味もよくわかっていませんでしたが、たぶんわかったと思います。
hGetContents :: Handle -> IO String は Prelude にはないので,明示的にインポートしなければ使えません.
プログラム中で両方使いたい場合は,例えば
import System.IO
import qualified Data.ByteString as B
などとして,hGetContents :: Handle -> IO String, B.hGetContents :: Handle -> IO ByteString のように使い分けられます.
qualified とか as の意味もよくわかっていませんでしたが、たぶんわかったと思います。