éå®çIOã¿ãããªã¢ãããç°¡åã«ä½ããããã³ã¼ããåé¢ã§ããããã¹ãããããããªãã®ã«ãªã⦠æ°ãæåãªãã ãããFreeã¢ãã*1ã§ã§ãããï¼ ã¨è¿ãããã ãããã ãä»ã¯éããFreeã¢ãããããç°¡åã«ã¢ãããä½ããã¢ãããOperationalã¢ãããããã®ã ã Freeã¢ããã«ã¤ãã¦å¾©ç¿ããããFreeã¢ããã¯Functorãåºã«Monadãä½ããæ§é ã§ãããFunctorã§èªåèªèº«ãå ããã¨ã«ãã£ã¦ã¢ããã®åãå¾ã¦ãã*2ãFunctorãã®ãã®ã¯DeriveFunctoræ¡å¼µã使ã£ã¦ç°¡åã«ä½ããã {-# LANGUAGE DeriveFunctor #-} import Control.Monad.Free data CharIO a = PutCh Char a | GetCh (Char -> a) | LiftIO (IO a) deriving Functor put
{{#tags}}- {{label}}
{{/tags}}