計算機科学のブログ

HaskellのI/O - コマンドラインの操作と遅延I/O - 単純な式、加算と乗算

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT4(HaskellのI/O)、LESSON 22(コマンドラインの操作と遅延I/O)、22.4(練習問題)、Q22-1の解答を求めてみる。

コード

simple_calc.hs

main :: IO ()
main = do
  userInput <- getContents
  print . calc $ lines userInput

calc :: [String] -> Int
calc (n:"+":m:_) = read n + read m
calc (n:"*":m:_) = read n * read m

入出力結果(Terminal, Zsh)

% runghc simple_calc.hs 
1  
+
2
3
% runghc simple_calc.hs
2
*
3
6
%