11得票2回答
如何使用属性和类型类定义无形的case类?

我目前正在实现一个库,将XML-RPC消息序列化和反序列化。这个库已经快要完成了,但现在我正在尝试使用Shapeless来消除当前的asProduct方法中的样板代码。以下是我的当前代码: trait Serializer[T] { def serialize(value: T): No...

16得票2回答
如何使用新的Slick 2.0 HList来克服22列限制?

我正在编写Slick代码以针对一个包含两个表和超过22列的旧模式。我该如何使用新的HList代码?在Scala 2.10.3下,除此之外我已经成功地使用了2.0-M3。这是我目前使用的与case类/元组相关的语法。如果我要使用文档中提到的新的HLists,我该怎么做? case clas...

22得票3回答
在Scala中使用foldLeft将参数列表应用于柯里化函数

能否对一个参数列表执行foldLeft操作,其中提供给fold的初始值是完全柯里化函数,运算符是apply,列表是传递给函数f的参数列表? 例如,假设f被定义为:scala> val f = (i: Int, j: Int, k: Int, l: Int) => i+j+k+l ...

7得票1回答
Scala函数中的异构参数

我该如何将一些HList作为参数传递?这样我就可以这样做: def HFunc[F, S, T](hlist: F :: S :: T :: HNil) { // here is some code } HFunc(HList(1, true, "String")) // it w...

150得票4回答
HLists是否只是写元组的复杂方式?

我很感兴趣了解HLists和一般列表相比的差异,更普遍地说,要确定哪些情况下不能使用HLists(或者说,相对于普通列表没有任何优势)。 (我知道Scala中有22个TupleN,而只需要一个HList,但这不是我感兴趣的概念差异。) 下面的文本中我标记了一些问题。实际上回答它们可能并不必要,...

8得票1回答
在Shapeless HList中查找类型类实例

假设我有一个名为Show[T]的trait,就像Scalaz中的那个一样:https://github.com/scalaz/scalaz/blob/scalaz-seven/core/src/main/scala/scalaz/Show.scala#L9。同时,我还有一个Shapeless的...

7得票1回答
将一个Shapeless HList的类型映射出来

我一直在尝试映射 scala 的 shapeless 包中 HList 的类型,但没有访问其值的权限。 以下内容成功地映射了 HList 的值: import shapeless._ import shapeless.Poly._ import ops.hlist.Mapper impor...

7得票1回答
Shapeless:尝试通过其类型限制HList元素

问题1 - 基本的LUBConstraints 我尝试使用现有的LUBConstraints进行操作时遇到了缺少证据的失败情况(请参阅以下代码块)。是否可以给出任何提示?空列表不是一个有效的长整型列表吗?没有元素违反了约束条件。 import shapeless.ops.coproduct...

7得票1回答
在函数内部对HList进行映射

以下代码看起来足够明显,可以编译和运行。 case class Pair(a: String, b: Int) val pairGen = Generic[Pair] object size extends Poly1 { implicit def caseInt = at[Int]...

12得票1回答
使用Slick和shapeless HList

Slick对HList的支持通常是一件好事。不幸的是,它自带的实现几乎没有提供任何有用的操作。因此,我想使用shapeless的HList。这应该很“简单”,但我不知道如何正确实现。在网上搜索时,我发现没有证据表明有人成功完成了这个任务。 我认为只需要实现一个ProvenShape(如此处所...