再起でファイル読み込み
まああんまり見ないようなのでメモ。
1行ごとに何かやるときって普通はreadFileでlinesにmapとかでやいのやいのやるっぽいんだけど
低レベルのAPI使う例が少なかったので書いてみた。
ファイルの頭から10行取り出すheadの別バージョン。
import System.Environment import IO fhead n f = bracket(openFile f ReadMode) hClose (\h -> do hSetBuffering h LineBuffering take_line 0 h) where take_line i h' |i == n = return() |otherwise = do eof <- hIsEOF h' if eof then return() else do str <- hGetLine h' putStrLn str take_line (i+1) h' main = do args <- getArgs fhead 10 $ head args
なげーよ!バカヤロー!
とりあえずHandleに対しても操作できますよと。
まあ滅多に使わないだろうなあ。
あとbracketはtry-finallyみたいもんですよと。