问题标签 [lenses]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-structures - lens, fclabels, data-accessor - 用于结构访问和变异的库更好
至少有三个流行的库用于访问和操作记录字段。我知道的有:数据访问器、fclabels 和镜头。
就我个人而言,我从数据访问器开始,现在正在使用它们。然而,最近在 haskell-cafe 上,有一种观点认为 fclabels 更胜一筹。
因此,我对比较这三个(也许更多)库很感兴趣。
haskell - 功能性镜片
有人可以向我解释功能性镜片吗?对于谷歌来说,这是一个令人惊讶的困难主题,我没有取得任何进展。我所知道的是,它们提供了与 OO 类似的获取/设置功能。
haskell - 依赖类约束的模糊类型变量
我正在为Snap web 框架编写一个新的身份验证系统,因为内置的身份验证系统不够模块化,并且它具有一些对我的应用程序来说是冗余/“自重”的功能。不过,这个问题根本与 Snap 无关。
这样做时,我遇到了类型约束不明确的问题。在下面的代码中,对我来说很明显的类型back
只能是b
函数类型中的类型变量,但 GHC 抱怨类型不明确。
如何在不使用 eg的情况下更改以下代码,使类型为back
is (因为问题出在约束上,而不是类型太笼统)?某处是否需要功能依赖?b
ScopedTypeVariables
相关类型类:
失败的代码:
完整错误:
scala - 在深度复制到地图值时避免使用镜头重复
我有一个不可变的数据结构,其中我在 Maps 中有嵌套值,如下所示:
另外,我有一个当天所有交易的清单,我想生成TradingDay
结构,其中
我试图通过折叠我的交易来弄清楚如何用镜头更新这个结构(见附录):
这行得通;但我想知道我是否可以减少重复性(在添加到地图然后修改地图键处的值方面。它似乎并不比相关的深层副本更烦人。
附录 - 镜片
haskell - 使用镜片有什么好处和坏处?
镜头似乎没有任何缺点,同时比标准 Haskell 具有显着优势:有什么理由我不应该尽可能使用镜头吗?是否有性能考虑?此外,模板 Haskell 是否有任何重大开销?
haskell - 镜头的用途/用途是什么?
我似乎找不到任何关于在实际示例中使用什么镜头的解释。Hackage 页面中的这个简短段落是我找到的最接近的:
该模块提供了一种方便的方式来访问和更新结构的元素。它与 Data.Accessors 非常相似,但更通用且依赖项更少。我特别喜欢它在状态单子中处理嵌套结构的干净程度。
那么,它们是用来做什么的呢?与其他方法相比,它们有哪些优点和缺点?为什么需要它们?
scala - Scalaz 镜头组成
这里真的很简单的问题。看完精彩的镜头介绍后:
http://www.youtube.com/watch?v=efv0SQNde5Q
我想我可能会尝试演讲中提到的简单示例之一:
这之后是这个错误
关于如何完成这项工作的任何想法?
haskell - 使单个函数适用于列表、字节字符串和文本(可能还有其他类似的表示)
我正在编写一个函数,该函数在一系列任意符号中进行一些搜索。我想让它足够通用,以便它适用于列表、Foldable
s 以及ByteString
s 和Text
s。将其概括为Foldable
很简单。但是如何包含ByteString
s 和Text
s 呢?当然我可以转换ByteString
成一个列表,然后调用我的函数,但我会失去所有的优势ByteString
。
举一个具体的例子,假设我们要创建一个直方图函数:
但由于既不ByteString
是 Text 也不是Foldable
(它只存储Word8
s/ Char
s,而不是任意元素),我坚持创建更多看起来与以前完全相同的函数,只是使用不同的类型签名:
这是在像 Haskell 这样的函数式语言中人们所不期望的。
如何使其通用,histogram
一劳永逸地编写?
haskell - Data.Lens 或 Control.Lens
我将在我的下一个 Haskell 项目中使用和学习 Lens 包。Data.Lens
当我发现这篇文章在包装中提到 van Laarhoven Lenses 时,我几乎已经决定了Control.Lens
包装。
我还不太了解这些差异,无法决定使用哪一个。你会建议我在现实世界的项目中学习/使用哪个包?
谢谢。
scala - 通过继承更新不可变数据结构
我正在制作一个战略游戏,我尝试应用我学到的东西,尝试使用不可变的数据。在我的游戏中我有单位,这些单位可以有不同的特殊功能。例如,某些飞机可以隐藏自己。我搜索的是一种能够做某种事情的方法
无需复制粘贴:
在每个混合 Hidable 的案例类上。