Articles of scala macros

Comportamiento extraño al intentar convertir clases de casos a listas heterogéneas recursivamente con Shapeless

Me quedé despierta hasta muy tarde anoche tratando de resolver este problema de Shapeless y me temo que me va a comer la noche si no lo quito de mi pecho, así que aquí va. En esta versión minimizada, solo estoy definiendo una clase de tipo que convertirá recursivamente las clases de casos en listas […]

Tipo de retorno estático de las macros de Scala

Así que tengo esta macro: import language.experimental.macros import scala.reflect.macros.Context class Foo class Bar extends Foo { def launchMissiles = “launching” } object FooExample { def foo: Foo = macro foo_impl def foo_impl(c: Context): c.Expr[Foo] = c.Expr[Foo](c.universe.reify(new Bar).tree) } He dicho tres veces que quiero que foo devuelva un Foo y, sin embargo, puedo hacer lo […]

Scala Macros: hacer un mapa fuera de los campos de una clase en Scala

Digamos que tengo muchas clases de datos similares. Aquí hay un User clase de ejemplo que se define de la siguiente manera: case class User (name: String, age: Int, posts: List[String]) { val numPosts: Int = posts.length … def foo = “bar” … } Estoy interesado en crear automáticamente un método ( en tiempo de […]

¿Iteración sobre un rasgo sellado en Scala?

Solo quería saber si es posible iterar sobre un rasgo sellado en Scala. Si no, ¿por qué no es posible? Dado que el rasgo está sellado, debería ser posible no? Lo que quiero hacer es algo así: sealed trait ResizedImageKey { /** * Get the dimensions to use on the resized image associated with this […]