HaskellのI/O Hello World!:IO型の紹介 IO型:不純な世界とやり取りする IOアクションの例 mainの型、getLineの型
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT4(HaskellのI/O)、LESSON21(Hello World!:IO型の紹介)、21.1(IO型:不純な世界とやり取りする)、IOアクションの例、クイックチェック 21-2の解答を求めてみる。
OKではない。mainの型は「IO ()」で、getLineの型は「IO String」だから。
コード
main :: IO ()
main = do
getLine
入出力結果(Terminal, Zsh)
% runghc sample02.hs
sample02.hs:3:3: error:
• Couldn't match type ‘[Char]’ with ‘()’
Expected type: IO ()
Actual type: IO String
• In a stmt of a 'do' block: getLine
In the expression: do getLine
In an equation for ‘main’: main = do getLine
|
3 | getLine
| ^^^^^^^
%