首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Data.Lens或Control.Lens

Data.Lens或Control.Lens
EN

Stack Overflow用户
提问于 2012-11-08 05:17:11
回答 3查看 1.3K关注 0票数 10

可能重复: lenses, fclabels, data-accessor - which library for structure access and mutation is better

我将在我的下一个Haskell项目中使用并学习一个镜头包。当我发现这篇文章提到了Control.Lens包中的van镜头时,我几乎决定了Control.Lens的包。

我还没有真正理解其中的不同之处,无法决定使用哪一种。你建议我在一个真实世界的项目中学习/使用哪一个软件包?

谢谢。

lenses, fclabels, data-accessor - which library for structure access and mutation is better

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-08 13:44:33

几乎可以肯定的是,Control.Lens是您想要的。Data.Lens是第一位的,而且比较简单,但是Control.Lens有许多优点,并且正在积极开发。

除了透镜,Control.Lens还有许多相关的类型,比如遍历(遍历就像可以引用n值的透镜,而不仅仅是一个)、折叠、只读/修改镜头、索引透镜、同构.它还附带了一个更大的有用函数库和标准库类型的预定义透镜库、用于派生透镜的模板Haskell,以及一些用于泛型拉链和单板风格泛型遍历的代码。

这是一个很大的图书馆--你不需要全部使用,但是很高兴你已经写好了你想要的东西。

Data.Lens的主要优点是它更简单,因此不需要Haskell 98以外的扩展。但是请注意,如果您只想从库中导出Control.Lens-style镜头,您可以不离开Haskell 98就可以这样做--实际上,根本不依赖于包。

票数 13
EN

Stack Overflow用户

发布于 2012-11-08 07:14:57

如果您正在处理的是一个真实世界项目(tm),我强烈推荐Control.Lens。Edwardk最近在这方面做了很多努力,我相信他很想听听你的用例。在我看来,这将成为典型的透镜库。我相信可以肯定地说,您可以使用Data.Lens所做的一切,也可以使用Control.Lens。

票数 6
EN

Stack Overflow用户

发布于 2012-11-08 21:27:37

Data.Lens要简单得多,也更容易使用。Control.Lens有大量的模块,并使用语言扩展来完成工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13282874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档