问题标签 [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.
scala - Scala无形函数对应于常规列表上的香草“压缩”?
这是一个新手问题。
我想做这样的事情:
在上面,d
应该有值:
有没有一种干净的方法可以做到这一点?
list - Scala 函数中的异构参数
我怎样才能通过一些HList
作为论点?所以我可以这样制作:
但是,如果我有一个很长的列表,而我对此一无所知,我该如何对其进行一些操作呢?我怎样才能传递参数而不丢失它的类型?
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 组件以便为隐式类生成可解析的过滤器
所以我需要例如:
被转化为
scala - 用于在我的 Scalaz 析取中合并不相关的失败案例的类型类
我对 Scalaz 析取有一个理解。这些左侧的类型可以是来自其他库的不同类型的错误案例类。例如,一种失败情况可能是由于 HTTP 超时,而另一种可能表示 Play 中的 Json 解析错误。
有没有一种方法可以使用某种形式的类型类来声明“这 4 个类/特征都是这种类型的错误”,而实际上并不让它们继承自一个共同的特征?如果这确实存在,则还需要能够在 for 理解中进行推断。
scala - Scala 中的无形结构编程:如何正确使用 SYB 实现?
我想使用Shapeless 库中的SYB实现来编写以下通用遍历函数:
不幸的是,此代码产生以下类型错误(使用 Shapeless 2.0.0-M1 和 Scala 2.10.2):
我假设B
需要以某种方式限制类型参数,以使 Shapeless 库的隐式宏适用,但我不知道如何。
这样的遍历函数能用Shapeless写吗?
scala - Scala中的异构映射,有可能吗?
所以问题出在标题上。这里有一些解释:众所周知,我们可以使用HList
它来存储对象及其类型。
哪里SomeCL
有课。所以我想制作地图,它可以在里面存储所有类型的信息,比如:
并且不要丢失有关类型的信息。我想注意,对象类型和对象数量 r 未知,因此我们不能对原生 shapeless 使用大量隐含HMap
。可能吗?
已编辑
(我的意思是我们不可能为 shapeless 手动编写所有隐式类型转换HMap
)
附言
如果不可能,我该如何决定这样的问题:例如,我有一些对象HList
,我正在构建图形。每个节点的安全类型非常重要(我们从 中的对象创建节点HList
),我不知道对象的数量。我如何构建图形,而不是丢失有关类型的信息?
已编辑2
S
顺便说一句,如果是 and 的超类型A
,此代码将引发错误C
;我们怎样才能避免这种情况?
scala - Scala 编译期间出现内存不足错误
我正在使用大量宏scala-pickling
和shapeless
,并且我不断使 Scala 2.10.3 编译器崩溃,并出现明显的内存不足错误。错误消息的尾部如下所示:
我正在监视我的系统内存,而且内存很多,所以如果这真的是内存分配的问题,我猜我可以在某个地方设置一些 JVM 标志来解决问题。
但是,我尝试通过将paulp 的 sbt脚本中的堆设置调整为 来增加可用内存,但-Xmx8g
我仍然收到此错误。这是正确的标志吗?
想法?
编辑:我添加了“scala-pickling”和“shapeless”标签,因为这是这些库的其他用户可能遇到的。
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。我认为这是因为我使用了“别名”(?),但我不知道如何克服这个困难。
list - 无形,Scala中的过滤器使用
很容易HList
按类型过滤无形:
但是如何制作我的自定义类型过滤器?我想要那样的东西:例如,我得到了一些函数的列表:
因此,在使用此过滤器后,String
将构建从类型到其他类型的函数列表。
我有一个想法为此使用地图,但没有成功。
版
有关我的评论的更多信息:
我试图在地图中测试这个想法:
因此,如果我有一些列表(让我们使用hlist
&操作hflist
):
非常有趣,为什么它编译和工作不正确?因为我认为它不起作用,导致对象不能以这种方式接受类型参数......