収支記録
Haskellで、モナドの勉強と、関数内で、値を返しさらにそれに続く処理をさせるため描いていた、簡単な収支記録プログラム
テキストファイルに、お金の出入りを正負の符号で記録、その合計値を表示するというのが最終目標
import IO filename = "recordmoney.txt" main = do foperate <- openFile filename ReadMode cs <- hGetContents foperate print (money cs) >> (putStr $ unlines $ recordMode '0') hClose foperate where money = sum.map read.words recordMode :: Char -> [String] recordMode '0' = "1.record\n2.exit\n--->": ( recordMode '1') recordMode '1' = "\n--->":(recordMode '2') recordMode _ = ["Thank you for your using..."]
見ての通り、全く出来てない笑
ただ、recordMode内の文字を表示していくだけです
recodeMode関数から自身を呼び出すとき、
getLine >>= recordMode.head.return
などとして、選択肢をgetLineなどで受け取りたいのですが、それをすると、
Charで処理するところがIO Charになってしまいコンパイルできない
で、
IO Char -> Char
とする方法が分からない
それができれば少なくとも、main以外の関数内で入出力処理をすることができるのだけど
うーむ