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

scala - Scala无形函数对应于常规列表上的香草“压缩”?

这是一个新手问题。

我想做这样的事情:

在上面,d应该有值:

有没有一种干净的方法可以做到这一点?

0 投票
1 回答
956 浏览

list - Scala 函数中的异构参数

我怎样才能通过一些HList作为论点?所以我可以这样制作:

但是,如果我有一个很长的列表,而我对此一无所知,我该如何对其进行一些操作呢?我怎样才能传递参数而不丢失它的类型?

0 投票
0 回答
348 浏览

scala - 类型级无形:聚合一个 HList 类型元素

我想用这个 Monad 折叠一个 HList 但在类型级别

因此, HList : "A :: B:: C :: HNil " 将给出类型 " A with B with C with Any"

如果我实现了 HList 很容易做到:

但是我不知道如何在无形环境中使用此功能

我的用例如下:

我需要通过约束有效参数来限制对某些类的隐式类使用例如:

例如,如果我有

MC 必须由隐式类 IC1 或 IC3 或 IC4 解析,但不能由 IC2 或 IC5 解析

--

我使用由“过滤器”组成的 HList 来动态定义 T 参数。创建所需的 HList 时,我需要聚合 HList 组件以便为隐式类生成可解析的过滤器

所以我需要例如:

被转化为

0 投票
1 回答
97 浏览

scala - 用于在我的 Scalaz 析取中合并不相关的失败案例的类型类

我对 Scalaz 析取有一个理解。这些左侧的类型可以是来自其他库的不同类型的错误案例类。例如,一种失败情况可能是由于 HTTP 超时,而另一种可能表示 Play 中的 Json 解析错误。

有没有一种方法可以使用某种形式的类型类来声明“这 4 个类/特征都是这种类型的错误”,而实际上并不让它们继承自一个共同的特征?如果这确实存在,则还需要能够在 for 理解中进行推断。

0 投票
1 回答
481 浏览

scala - Scala 中的无形结构编程:如何正确使用 SYB 实现?

我想使用Shapeless 库中的SYB实现来编写以下通用遍历函数:

不幸的是,此代码产生以下类型错误(使用 Shapeless 2.0.0-M1 和 Scala 2.10.2):

我假设B需要以某种方式限制类型参数,以使 Shapeless 库的隐式宏适用,但我不知道如何。

这样的遍历函数能用Shapeless写吗?

0 投票
2 回答
3211 浏览

scala - Scala中的异构映射,有可能吗?

所以问题出在标题上。这里有一些解释:众所周知,我们可以使用HList它来存储对象及其类型。

哪里SomeCL有课。所以我想制作地图,它可以在里面存储所有类型的信息,比如:

并且不要丢失有关类型的信息。我想注意,对象类型和对象数量 r 未知,因此我们不能对原生 shapeless 使用大量隐含HMap。可能吗?

已编辑

(我的意思是我们不可能为 shapeless 手动编写所有隐式类型转换HMap

附言

如果不可能,我该如何决定这样的问题:例如,我有一些对象HList,我正在构建图形。每个节点的安全类型非常重要(我们从 中的对象创建节点HList),我不知道对象的数量。我如何构建图形,而不是丢失有关类型的信息?

已编辑2

S顺便说一句,如果是 and 的超类型A,此代码将引发错误C;我们怎样才能避免这种情况?

0 投票
1 回答
718 浏览

scala - Scala 编译期间出现内存不足错误

我正在使用大量宏scala-picklingshapeless,并且我不断使 Scala 2.10.3 编译器崩溃,并出现明显的内存不足错误。错误消息的尾部如下所示:

我正在监视我的系统内存,而且内存很多,所以如果这真的是内存分配的问题,我猜我可以在某个地方设置一些 JVM 标志来解决问题。

但是,我尝试通过将paulp 的 sbt脚本中的堆设置调整为 来增加可用内存,但-Xmx8g我仍然收到此错误。这是正确的标志吗?

想法?

编辑:我添加了“scala-pickling”和“shapeless”标签,因为这是这些库的其他用户可能遇到的。

0 投票
1 回答
763 浏览

scala - 如何在scala中的类型级别测试类型相等性?

我想做一些类型级别的编程。Scala 类型的宏已经死了,看起来 shapeless 无法做我想做的事。如果我能让以下代码工作,我所有的问题都将得到解决(此代码是从http://apocalisp.wordpress.com/2010/06/08/type-level-programming-in-scala/http 借来的: //michid.wordpress.com/2010/06/18/type-level-programming-equality/ ) 它显示了具有“类型删除”运算符的 HList 的实现。该错误来自“EQ”结构,该结构测试两种类型是否等效以便删除。在我的情况下,它似乎总是返回 false。我认为这是因为我使用了“别名”(?),但我不知道如何克服这个困难。

0 投票
1 回答
1474 浏览

list - 无形,Scala中的过滤器使用

很容易HList按类型过滤无形:

但是如何制作我的自定义类型过滤器?我想要那样的东西:例如,我得到了一些函数的列表:

因此,在使用此过滤器后,String将构建从类型到其他类型的函数列表。

我有一个想法为此使用地图,但没有成功。

有关我的评论的更多信息:

我试图在地图中测试这个想法:

因此,如果我有一些列表(让我们使用hlist&操作hflist):

非常有趣,为什么它编译和工作不正确?因为我认为它不起作用,导致对象不能以这种方式接受类型参数......

0 投票
0 回答
197 浏览

scala - 如何使用 Shapeless 的结构化编程在 Scala 中定义通用的“替换”函数?

这是关于如何使用Shapeless库中的 SYB 实现在 Scala 中实现通用转换器的后续问题。

我想借助everywhereShapeless 中定义的组合器在 Scala 中定义一个通用的“替换”函数:

此函数应替换给定表达式中出现的每个xwith 。不幸的是,这个功能不能如我所愿。应用于值yexprgenericReplacetree

根本不会改变给定的值。

有没有办法让这个例子工作?如何everywhere在我的代码中正确使用 Shapeless 组合器?