Just 1
登场:
> Just (+1) (Just 1)
Just 2
Monad
在Applicative之上的增强,能够把一个输入普通值输出具有context值的函数,应用到一个具有...x * 2)
Nothing
1:1完美还原,利用Maybe Monad从容应对一连串可能出错的操作
四.do表示法
在I/O场景用到过do语句块(称之为do-notation),可以把一串I/O Action...n -> ['a','b'] >>= \ch -> return (n,ch)
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
最后的n看着不太科学(看infixl 1 >>=好像访问不到...),实际上能访问到n,是因为lambda表达式的贪婪匹配特性,相当于:
[1,2] >>= \n -> (['a','b'] >>= \ch -> return (n,ch))
-- 加括号完整版
([...比如要对列表元素进行过滤的话,List Comprehension最简单:
> [ x | x <- [1..50], '7' `elem` show x ]
[7,17,27,37,47]
用>>=也能搞定