变形如何与晶状体相关?

nus*_*hio 4 recursion haskell category-theory haskell-lens

透镜,记录访问器如何,例如

http://hackage.haskell.org/packages/archive/lens/3.9.0.2/doc/html/Control-Lens-Type.html#t:Lens

与变形相关?例如

http://hackage.haskell.org/packages/archive/recursion-schemes/3.0.0.2/doc/html/Data-Functor-Foldable.html#v:ana

你能说前者是后者的一个例子吗?

我最近一直在使用镜头.在Haskell编程中,镜头在许多方面都至关重要; 它们是记录访问,有状态程序的工具......为了更好地理解镜头,我开始阅读"香蕉,镜片,信封和铁丝网"纸.在"INSIDE 206-105"的帮助下,我慢慢地重新实现了Haskell中的-morphisms.然后上面的问题发生在我身上.

Edw*_*ETT 11

Bird's SQUIGGOL形式主义和现代镜头概念作为功能参考完全没有联系.

递归方案和功能引用是不相关的概念.

这只是术语中的一个不幸的巧合.不幸的是,它通常意味着当人们看到这些名字时,他们会试图回到"来源"并最终感到非常困惑!

如果你想找到关于镜片主题的早期论文,你可以通过Benjamin Pierce在Boomerang上阅读论文来获得更好的服务.在那里,他定义了几种镜头概念.与Haskell中使用的功能参考形式相对应的那些将是他所谓的"非常好的镜头".然后他继续将它们推广到与我在lens包装中所采用的路径不同的方向.他专注于使用它们来恢复不变量,而"表现良好"的镜头首先不会破坏不变量.

功能参考意义上的术语"镜头"指的是它看起来整体的一部分.在递归方案意义上的术语"透镜"是指这样的事实[()]语法看起来有点像凹透镜.

tl; dr他们彼此无关.