週末はニューラルネットの実装でもするつもりでいたのに、突然
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のモナド変換子の章を読むべし的な流れになってる。
Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。