コンテキストでの型の操作 Monad型クラス ApplicativeとFunctorの制限 それほど単純ではないecho I/Oアクションを記述する
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT5(コンテキストでの型の操作)、LESSON 30(Monad型クラス)、30.1(ApplicativeとFunctorの制限)、それほど単純ではないecho I/Oアクションを記述する、クイックチェック 30-1の解答を求めてみる。
IO String型ではMaybe String型のように関数の引数のパターンマッチで値を取得することができないから。
本lessonで使わないことにしてるdo表記を使えば可能。
do表記を使用した記述をしてみる。
コード
lesson/app/Main.hs
module Main (main) where
import Lib
(
)
echo :: IO ()
echo = do
line <- getLine
putStrLn line
main :: IO ()
main = echo
入出力結果(Terminal, Zsh)
% stack exec lesson-exe
Hello, world!
Hello, world!
%