使用 Prism 作为智能构造函数



我正在浏览有关棱镜的"镜头"文档,我注意到Control.Lens.Review中有一行指出中缀审查运算符#'通常在使用Prism作为智能构造函数时使用。

这让我有点感兴趣,因为_Left的例子,"Both"数据类型的构造函数之一,据我所知,智能构造函数似乎不像一个智能构造函数(对参数值添加额外的限制)。所以我在谷歌上搜索了一下棱镜作为智能构造函数,但我并没有真正找到任何例子。

有没有人知道这句话的确切含义,并可能举个例子? 或者也许告诉我,我对智能构造函数的定义当然是不正确的。

Prism类型的一种观点是近乎同构。事实上,镜头文档说"It may help to think of this as a Iso that can be partial in one direction."

对于智能构造函数来说,部分方向不是一个很好的类比吗?您可以向它提供任何一组参数(与类型匹配),但其中一些参数将无法创建值。

最新更新