在阅读Lens over Tea #1文章时,我发现了united
镜头。我的实现如下:
united :: Lens' a ()
united f v = const v <$> f ()
这与Lens库实现基本相同。
让我完全困惑的是,我为什么要首先使用这样的函数?这个镜头有什么用处吗?
在阅读Lens over Tea #1文章时,我发现了united
镜头。我的实现如下:
united :: Lens' a ()
united f v = const v <$> f ()
这与Lens库实现基本相同。
让我完全困惑的是,我为什么要首先使用这样的函数?这个镜头有什么用处吗?
id
函数(返回其参数不变)或Identity
单子(一种没有“影响”的单子;等价于根本不使用单子)相同,都具有类似的用途。()
类型!)基本上是“无操作”结构,因此当您仅查看它们时,它们似乎毫无用处。但当涉及到多态性时,它们变得有用,通过为您提供可用于通用操作的“无操作”选项。
united f s = s <$ f ()
,在我看来这样更容易阅读。 - MikaelF