遍历
一个 Traversal' s a
表明 s
里面有 0 到多个 a
s。
toListOf::Traversal' s a -> (s -> [a])
任何类型的 t
都是 Traversable
自动拥有 traverse::Traversal (t a) a
。
我们可以使用 Traversal
来设置或映射所有这些 a
值
> set traverse 1 [1..10]
[1,1,1,1,1,1,1,1,1,1]
> over traverse (+1) [1..10]
[2,3,4,5,6,7,8,9,10,11]
一个 f::Lens' s a
说,在 s
里面只有一个 a
。一个 g::Prism' a b
说在 a
中有 0 或 1 个 b
s。组成 f . g
给了我们一个 Traversal' s b
因为跟随 f
然后 g
显示了 s
中 0 到 1 的 b
s。