1

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

这让我有点好奇,因为就我理解的智能构造函数(对参数值添加额外的限制)而言,带有 _Left 的示例,它是“Either”数据类型的构造函数之一,看起来不像是智能构造函数。所以我在谷歌上搜索了一下棱镜作为智能构造函数,但我并没有真正找到任何例子。

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

4

1 回答 1

2

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

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

于 2014-11-30T18:14:35.640 回答