wvogel日記

自分用の技術備忘録が多めです.

会計

Haskellで、昔Cで作った家計簿的なものを作ろうと思ってタプルとか調べてたけど、タプル使わなくてもなんかできそうな気がしてきた。

main = do cs <- getContents
          putStrLn $ revenue $ words cs

revenue :: [String] -> String
revenue (j:js)
    | j == "in"  = head js
    | j == "out" = "-" ++ head js
    | otherwise  = "There is not such command."

これに例えば、
in 600と打つと、文字列として"600"が返され、
out 450とすると、"-450"が返されます。
今はこれをIOに結びつけちゃってるけど、この間に数字への変換をすればいけそうです。


ただ、

putStrLn $ revenue.words cs

とすると、コンパイルをとおらないのは何故だろう。