问题标签 [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 投票
2 回答
794 浏览

scala - 如何从 Scala HList 中读取元素?

关于 HLists 的可读文档很少,我可以在 SO 上找到的答案来自外太空,适用于一个不起眼的 Scala 初学者。

我遇到了 HLists,因为 Slick 可以自动生成一些来表示数据库行。它们是slick.collection.heterogeneous.HList(不是无形的)。例子:

现在给定这些行之一,我需要读取一个元素,如果可能的话输入。我就是不能那样做。我试过了

有人可以解释我如何从那只恐龙中提取特定值吗?

0 投票
2 回答
481 浏览

scala - 给定一个 HList 你如何得到一个 HMap

我有一个HListSymbols我想将其转换为HMapHListkeys并将value映射设置为基于key. 生成的对象保持状态,因此尽管默认映射可以知道后续状态不是。

0 投票
1 回答
1286 浏览

scala - 将无形 HList 转换为元组

try-with-resources在 Scala 中有这个版本。我想知道是否可以使用 Shapeless 和 HList 制作一个通用版本?

有类似签名的东西,我猜

另一个问题是如何在节中以元组的形式提供元素block: (A,B) => R

这有可能实现吗?

0 投票
0 回答
151 浏览

scala - 使用 Shapeless HList 为参数化案例类创建编码器

我想为类和编码集合实现ItemEncoder类型类Elementelements

0 投票
1 回答
351 浏览

scala - 将任意案例类一般编码到 AWS Sdk DynamoDb 项中

你觉得我做的有道理吗?有没有更好的方法将案例类编码为Item?例如,我不满意在某些情况下忽略输入参数!

ToMap也许使用或类似的东西会更好,并将其转换为Item

0 投票
2 回答
142 浏览

haskell - 异构列表的笛卡尔积

当然,生成异构列表的笛卡尔积可以在 Haskell 中以多种方式完成,例如:

或者

但我想要的是这样的功能:

所以我可以做这样的事情:

我不介意我是使用元组还是其他东西,但我需要像上面一样保留类型信息。

我想要这个的原因是创建测试用例。我有一堆说n函数和m值。最终,我将在这些函数上映射一个函数,将它们全部减少为相同的类型(a Test),但到目前为止,n*m我想要执行的测试用例有很多不同的类型(实际上并不是那么简单,因为某些函数只能受限值的子集)。

因此,这些异构列表具有其他功能自然会很好,例如某种功能map

我看过HList,但它在去年没有更新,而且我不确定它是否是最合适的工具。

0 投票
1 回答
113 浏览

scala - 将 hlist 的 ToList 证据捕获为隐式类参数

我正在尝试使用 shapeless 的 hlist 来构建可自省的 URL 模板,但是在遍历我的 HList 时遇到了麻烦。以下内容无法编译:

在我看来,ToTraversable._导入涵盖了 HNil 情况以及具有 HList 的尾部和具有相同最小上限的新头部的情况。显然,我要么错过了导入,要么误解了一切。

我不确定将类中的证据作为隐式参数缓存是否符合规定;我这样做是因为

  1. 我不希望 hlist 详细信息泄漏到外部 API
  2. 我需要它来获得一个不错的 toString
0 投票
1 回答
94 浏览

java - 使用functionaljava HList,有没有办法将任意HList的每个元素传递给相应的咖喱函数?

例如,如果我有一个 HList:

HList<A,HList<B,HList<C,HNil>>> list = ...

有没有办法将每个元素应用于柯里化函数:

F<A,F<B,F<C,D>>> f = ...

以这样一种方式,我会以某种方式得到一个D

此外,如果我E反对 HList

HList<E,HList<A,HList<B,HList<C,HNil>>>> list2 = list.extend((E)e);

然后以某种方式申请

F<E,F<A,F<B,F<C,D>>>> ef = ..

以同样的方式到那个 HList?

0 投票
2 回答
137 浏览

scala - 合并 HList 元素

我有一个简单的服务定义

以及如何链接服务的方法:

我想将我的所有服务(假设它们可以组合)放入HList并从HList服务组合中构建。

这是我的Resolver

我有服务

当我尝试解决简单链时

我得到一个隐含的未找到错误。

0 投票
1 回答
141 浏览

scala - Scala 不会为无形 HList 派生依赖类型(使用 Aux)

给定一个依赖于类型的 Converter 类型类,它可以将 String 转换为 Integer:

我希望它适用于 HList,例如Integer :: HNil. 理论上,我只需要隐含 HNil 和 HList:

以上适用于 HNil:

但不适用于 HList。有趣的是,它确实找到了一个实例,但没有派生出结果类型

我已经将它设置在一个自包含的项目中,该项目有更多(失败)尝试调试问题:https ://github.com/mpollmeier/shapeless-dependent-type-typeclass-problem