问题标签 [shapeless]

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 回答
431 浏览

scala - scala - HList 的通用解压缩

我有以下斯卡拉问题:

编写一个函数来获取 HLists 的列表

并返回 HList of Lists

这有点像通用的 unzipN。任意HList是否有可能?

谢谢你。

0 投票
0 回答
297 浏览

scala - 运行时整数值作为类型级整数(如 shapeless.Nat,但不是文字)

我试图表示一个有限环 ℤ/nℤ ,其特征是在运行时指定的类型级整数。

是否有可能有类似的东西shapeless.Nat来表示一个类型级整数,但不需要它是一个编译时常量,即只需要在运行时指定值(并生成相应的类型)?能不能借助宏观天堂的帮助来完成?我需要做什么?

我还需要能够在运行时从类型中检索值,但我不一定需要在类型级别上执行任何算术运算(即添加类型级别整数、增量等)

谢谢你。

0 投票
2 回答
177 浏览

scala - 定义无形替换器

我想知道如何使用 Shapeless 库修复这个 Scala 代码,以便它编译:

我收到以下错误消息:

我试图查看无形的源代码以找到创建丢失的隐式的解决方案Replacer,但无济于事:/

0 投票
3 回答
13036 浏览

scala - 有人可以向我解释 Shapeless 库的用途吗?

有人可以简单地向我解释 Shapeless 库的用途吗?

Scala 具有泛型和继承功能,所以我有点困惑 Shapeless 的用途。

也许一个用例来澄清事情会有所帮助。

0 投票
1 回答
594 浏览

scala - 对无形 HList 内容的类型推断

这个例子被简化了。

我有一组这样的类:

在以下代码中,类型被正确推断:

我不知道如何正确推断以下类型:

有没有办法可以KeyType根据内容推断HList

0 投票
1 回答
534 浏览

scala - 扩展共同特征的无形 HList 类型

我有一些基于无形 HList 的类型:

我想ST为所有这些定义一个超类型的密封特征,这样,如果我有以下功能:

以下是有效的:

但以下内容无法编译:

我如何定义t1t2作为子类型ST

更新

我认为 Coproducts 可能是一个解决方案

0 投票
0 回答
69 浏览

scala - 不从 val 调用时找不到类方法隐式参数

我有一个依赖于的类HList,有一个多态函数和一个将这个函数映射到列表上的方法。奇怪的是,这个方法只能在 a 上调​​用val,否则编译失败:

有没有办法在保持f内部的同时克服这种行为C?我试图将该方法提取g到另一个类或对象,但它没有帮助。

0 投票
3 回答
6531 浏览

arrays - Scala案例类参数从数组实例化

考虑一个可能有大量成员的案例类;为了说明这种情况,假设有两个论点,如

因此假设一个数组的大小至少有那么多参数,

然后

但是,是否有一种案例类实例化方法,不需要为任何(可能很大)数量的预定义类成员引用数组中的每个元素?

0 投票
0 回答
84 浏览

list - 将 safeGet 方法从 Shapeless 添加到 Sized

我开始为 Sized 添加一个 safeGet 方法,因为我觉得这对于我正在处理的某些客户端代码来说是最好的。

我能够让它与一个在我的情况下有效但在一般情况下无效的可怕黑客一起工作。

这是方法签名和定义:

但是,由于 Traversable 没有定义 apply 方法,因此必须执行一些额外的 hack 才能使其正常工作。这是完整的(小)差异:https ://github.com/jedesah/shapeless/commit/ab52185bec7463f54a040e7857cba7c5758fe46e

任何人都知道如何以更合适的方式获得相同的结果?

我觉得标准库中必须有一个 IsGenSeqLike 才能正确完成。然后我可以不理会 Traversable,只在 Seq 上定义 safeGet。

0 投票
1 回答
734 浏览

scala - 查找 Shapeless HList 的类型类实例

假设我有一个Show[T]Scalaz 中的特征:https ://github.com/scalaz/scalaz/blob/scalaz-seven/core/src/main/scala/scalaz/Show.scala#L9

我也有一个HList可能看起来像的无形"1" :: 2 :: 3L :: HNil

有没有办法找到Show每个元素的实例并应用shows到我最终得到的结果"1" :: "2" :: "3L" :: HNil

如果任何元素的类型在范围内没有隐式Show实例,我会想要一个编译错误。

我认为如果我构建一个HList实例,Show我应该能够使用它zipApply来获得HList我想要的,但我不知道是否有办法让 Scala 推断HList实例Show而不是我手动构建它.