Drkcore

06 02 2010 Haskell Tweet

Haskellのプログラムの中でエディタを使ってファイルをいじる

週末はニューラルネットの実装でもするつもりでいたのに、突然

Haskellのプログラムの中でファイルをエディットして保存したら、そのファイルの中身を読む

ということをやりたくなってしまった。要するにHaskellでこれがやりたくなった。

import System.FilePath ((</>))
import System.Directory
import System.Process
import System.Environment
import Control.Monad (liftM)

main = do 
  home     <- getHomeDirectory
  (file:_) <- getArgs
  editor   <- liftM (lookup "EDITOR") getEnvironment
  case editor of Just ed -> (>>= waitForProcess) . runCommand $ ed ++ " " ++ (home </> file)
                 Nothing -> error "command error\n"
  inpStr <- readFile $ home </> file
  print inpStr

最初、

runCommand $ ed ++ " " ++ (home </> file)

って書いてて、あーブロックされてないんだろうなぁと。探したらどう書く?にあった。

あと、RWHのモナド変換子の章を読むべし的な流れになってる。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021