在阅读第1号茶上的镜头时,我找到了united镜头。我的实现是
united
united :: Lens' a () united f v = const v <$> f ()
这与Lens库中的实现几乎相同。
让我完全困惑的是为什么我首先要这样的功能?这个镜头有什么用吗?
我以前从未真正看过或使用过它。但是我想它的作用与id函数(返回未修改的参数)或Identitymonad(这是没有“效果”的monad;完全等同于完全不使用monad)的用法相同。
id
Identity
这些以及其他类似的概念(包括()类型!)基本上是“无所事事”的结构,因此当您单独查看它们时,它们似乎毫无用处。但是,当涉及多态时,它们将为您提供“不做任何事情”选项以传递给常规操作,因此很有用。
()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
点击生成二维码
我来说两句