8. Input & Output
1 | import Data.Char |
do 意味着后面进行IO操作
<- 是IO操作,左边取IO行为的结果。
let 与之前的一样,绑定数值。
return 将右边的值作为IO结果返回,如 wahaha <- return “wahaha”
when
1 | import Control.Monad |
参数为一个布尔和一个IO行为,布尔为True的时候才进行IO行为,否则返回IO()
sequence
1 | sequence $ map print [1, 2, 3, 4, 5] |
将一组IO行为按顺序进行,并输出结果
mapM & mapM_
相当于sequence $ map,右边不会输出结果
forever
while(true) $ do any IO action…
forM
1 | forM :: (Monad m, Traversable t) => t a -> (a -> m b) -> m (t b) |