テンポラリファイルをエディタでいじって、保存するとテンポラリファイルの内容を読んでHsSyckでパースして出力する
import System.IO import System.Process import System.Directory import System.Environment import Control.Monad (liftM) import Data.Yaml.Syck main :: IO () main = do tmpdir <- getTemporaryDirectory (pathOfTempFile, h) <- openTempFile tmpdir "temp.yaml" editor <- liftM (lookup "EDITOR") getEnvironment case editor of Just ed -> (>>= waitForProcess) . runCommand $ ed ++ " " ++ pathOfTempFile Nothing -> error "command error\n" hClose h inpStr <- readFile pathOfTempFile yamlstr <- parseYaml inpStr print yamlstr removeFile pathOfTempFile return ()
HoogleとGHCの標準ライブラリドキュメントが手放せない身体になってきた。
もっとHaskellの本出ないかなぁ。Principles of Biomedical InformaticsのHaskell阪みたいなのとか。