问题标签 [hlist]

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.

0 投票
1 回答
198 浏览

scala - 为什么映射 Option[T] 的 HList 不起作用?

这不编译,我不明白为什么:

这有点令人惊讶,因为它确实编译:

0 投票
1 回答
109 浏览

scala - 用Shapeless扑灭白羊座的篝火?

我有一种情况,我想抽象一些,并在一个或多个“原始”类型(AB以下)之间建立类型协议,一个应该返回Seq(Option[A], Option[B], ...)这些类型对应的方法(如下命名extract),以及一组字段配置(命名configs如下),每个都知道如何获取相应“原始”类型的值。

在下面的代码中,理想情况下我想要Dimensions1并且Dimension2不存在。如果我必须做某种类似s.c.i.List递归的头/尾构造,我会同意的。:)

0 投票
2 回答
168 浏览

scala - 是否有一种无样板的方法可以将 HLists 转换为参数列表?

根据这个问题, Spray 使用 sbt-boilerplate 生成ApplyConverter实例,这些实例隐式转换A :: B :: ... :: HNil => R为更传统(A, B, ...) => R的实例,以便于使用。这个问题是一年多前提出的;现在可以使用例如宏或 Shapeless 的新功能来完成此操作,从而不需要外部代码生成步骤吗?

0 投票
2 回答
73 浏览

haskell - HList:要标签的字符串

我正在尝试开始使用 HList。有没有办法(函数?)以下列方式从字符串生成标签:

由于 lb 是字符串,而不是标签,因此无法编译此代码。有没有合适的方法来实现这一目标?谢谢。

0 投票
1 回答
1293 浏览

scala - 用于无形 Hlist 的通用 Poly2 文件夹

我正在尝试转换以下 HList

这是我目前所拥有的:

这可行,但我想让它通用,以便它适用于 Some 包装的任何类型,而不必编写每个案例

0 投票
1 回答
75 浏览

haskell - HListElim 可以与另一个函数组合吗?

给定

(改编自https://gist.github.com/timjb/516f04808f0c4aa90c26重新路由

我希望能够编写如下函数

我的第一次尝试是

但 GHC 告诉我

这甚至可能吗?

0 投票
1 回答
1018 浏览

scalaz - 未找到参数映射器的 HList Poly1 Mapper 隐式值

我正在使用 shapeless 2.1.0 -scala 2.11,jdk 1.7:我有一个特点

这在我的控制台中正确返回

但是,当我在函数中具有完全相同的逻辑时 - HList 从另一个函数调用返回给我并且我在其上映射函数,我得到一个编译时错误

我怀疑我可能遗漏了一些暗示。我已经检查了无形的测试和文档——希望我没有错过任何太明显的东西。

如果问题不明显,我可以创建一个完整的示例来重新创建问题 - 感谢阅读。

最好的,阿米特

更新:举个例子

特征 Input[T]{ def location:String def value:T }

如果我要删除 def 输入的返回类型,我不会收到任何错误。

0 投票
2 回答
2086 浏览

scala - 如何使用属性和类型类无形的案例类?

我目前正在实现一个库来对 XML-RPC 消息进行序列化和反序列化。它几乎完成了,但现在我正在尝试使用Shapeless删除我当前asProduct方法的样板。我当前的代码:

我的目标是允许我的库的用户序列化/反序列化案例类,而无需强迫他编写样板代码。目前,您必须使用上述 asProduct 方法声明案例类和隐式 val,才能在上下文中拥有一个 Datatype 实例。此隐式用于以下代码:

这是使用类型类进行序列化和反序列化的经典策略。

此刻,我已经掌握了如何通过Generic或LabelledGeneric 从案例类转换为HList。问题是,一旦我完成了这个转换,我可以如何调用方法fromXmlrpctoXmlrpc,就像 asProduct2 示例中一样。我没有关于案例类中属性类型的任何信息,因此,编译器找不到任何满足fromXmlrpctoXmlrpc的隐式。我需要一种方法来约束 HList 的所有元素在上下文中都具有隐式数据类型

由于我是 Shapeless 的初学者,我想知道获得此功能的最佳方式是什么。我有一些见解,但我绝对不知道如何使用 Shapeless 完成它。理想的情况是有一种方法可以从案例类的给定属性中获取类型,并将此类型显式传递给fromXmlrpctoXmlrpc。我想这不是可以做到的。

0 投票
1 回答
544 浏览

scala - HList 的保证 LUB 约束

我想我需要一个 HList ,它的所有元素都是某种类型的子类型。LUBConstraint似乎是我想要的,实际上它确实限制了这样一个 HList 的构建- 但我看不到如何再次获取证据,以便我可以映射(实际上是遍历,因为它需要是单子的)在 HList 上并在每个元素上调用一个方法(存在于 LUB 类型中)。

另外,我希望遍历操作产生的 HList 的类型与输入 HList 的类型完全相同。

用例是一种功能性“监听器列表”——HList 的所有元素都是“监听器”,它们必须被通知“事件”,接受或拒绝它们,并返回具有更新的“内部状态”的新版本自身. 如果这就是我所需要的,那么我可以只使用一个普通的不可变 Scala 集合。但我也希望在不使用的情况下直接键入访问单个元素asInstanceOf- 因此是尝试使用 HList 的动机。

0 投票
1 回答
235 浏览

scala - 在标准元组上重现 HList 样式操作的无形示例

我对 Scala 非常陌生,并且一直在寻找无形包来为 Scala 的元组提供类似 HList 的操作。

我正在运行 scala 2.10.5,并且我已经成功安装了包(版本 2.2.0-RC6)以及所有依赖项。

当我尝试在 REPL中运行以下示例(来自无形功能概述)时,

我收到以下错误消息:

我敢打赌,这对我来说是一个愚蠢的错误,而且我一直在研究很多关于此的论坛。

我错过了什么?

在此先感谢您的帮助。