Динамически параметризовать функцию Poly1 в бесформенном
У меня такая ситуация (урезанная до основных частей)
class Foo[L <: HList](columns: L) {
class toRecord(row: Row) extends Poly1 {
implicit def caseColumn[T] = at[Column[T]] { /* map to a record field */ }
}
def asRecord = {
val resultSet: Stream[Row] = // computation to get result set
resultSet.map { row =>
val m = new toRecord(row) // this can't work
columns.map(m)
}
}
}
Это не работает сmap
хочет стабильный идентификатор иm
не является. Так что мне нужно как можно большеPoly1 singleton objects
столько строк у меня в наборе результатов.
Это та же проблема, что обсуждалась здесь:https://groups.google.com/forum/#!topic/shapeless-dev/P5DXRgnzqkY, но я не могу найти способ сделать эту работу.
В связанном обсуждении Майлз Сабин предложилfold
сPoly2
вместоmap
сPoly1
, но я не могу понять, как использовать это предложение в моем случае.