跳到主要内容

Profunctor Optics类别更新

布莱斯·克拉克(Bryce Clarke)、德里克·埃尔金斯(Derek Elkins)、杰里米·吉本斯(Jeremy Gibbons)、福斯科·洛雷吉安(Fosco Loregian)、巴托斯·米列夫斯基(Bartosz Milewski

摘要

光学是双向数据存取器,用于捕获数据转换模式,例如访问子字段或在容器上迭代。Profunctor光学是一种支持模块化的特殊表示选择,这意味着我们可以通过组合较简单的结构来构造复杂结构的存取器。Profunctor光学以前只在非丰富和非混合环境中进行过研究,其中两个访问方向都在Set中建模。然而,可以说函数式编程语言更适合用丰富的类别来描述;我们发现,文献中的一些结构实际上是混合光学结构,访问方向在不同类别中建模。我们的工作推广了Pastro和Street在Tambara理论上的经典结果,并用它来描述混合的V富集的深度光学,并赋予它们V类结构。我们提供了一些光学和衍生的原始家族,包括一个用于遍历的基本家族。最后,我们讨论一个Haskell实现。

日记账
成分
编号
1
体积
6
年份
2024