联合镜头的目的是什么?
What is the purpose of united lens?
在阅读 Lens over Tea #1 文章时,我找到了 united
镜头。我的实现是
united :: Lens' a ()
united f v = const v <$> f ()
这与 implementation in the Lens library 几乎相同。
让我完全困惑的是为什么我首先想要这样的功能?这个镜头有什么用处吗?
我以前从未真正见过或使用过它。但我想它的用处与 id
函数(returns 它的参数未修改)或 Identity
monad(这是一个没有 "effects" 的 monad;完全一样等同于根本不使用 monad)很有用。
这些和其他类似的概念(包括 ()
类型!)基本上都是 "do-nothing" 结构,因此当您单独看它们时,它们似乎毫无用处。但是当涉及多态性时,它们会变得有用,通过给你一个 "do-nothing" 选项来传递给一般操作。
在阅读 Lens over Tea #1 文章时,我找到了 united
镜头。我的实现是
united :: Lens' a ()
united f v = const v <$> f ()
这与 implementation in the Lens library 几乎相同。
让我完全困惑的是为什么我首先想要这样的功能?这个镜头有什么用处吗?
我以前从未真正见过或使用过它。但我想它的用处与 id
函数(returns 它的参数未修改)或 Identity
monad(这是一个没有 "effects" 的 monad;完全一样等同于根本不使用 monad)很有用。
这些和其他类似的概念(包括 ()
类型!)基本上都是 "do-nothing" 结构,因此当您单独看它们时,它们似乎毫无用处。但是当涉及多态性时,它们会变得有用,通过给你一个 "do-nothing" 选项来传递给一般操作。