Árboles de expresión de Java

expression-trees java jvm linq scala

Pregunta

¿Hay un equivalente de los árboles de expresión de .net que subyacen a LINQ para la JVM ? Me gustaría implementar algunas estructuras de código tipo LINQ en Scala y me pregunto si también tengo que rodar mi propia biblioteca de árbol de expresiones.

Actualización: No estoy interesado en un linq equivalente en sí mismo. .net tiene un gran conjunto de herramientas de árbol de expresión que facilitan la compilación dinámica de código en tiempo de ejecución, lo que permite que se pueda llamar desde su código. El proyecto que quiero emprender no tiene relación con las bases de datos. Los árboles de expresiones proporcionan una manera fácil de describir el código que opera con datos.

Si no hay una biblioteca, mi otra opción es crear una que emita un código de bytes.

Respuesta popular

Desde 2.10, Scala tiene macros, que le dan acceso a árboles de sintaxis abstracta de sus argumentos en tiempo de compilación: http://scalamacros.org/ . Aquí hay algunos ejemplos de su uso, incluido un esquema de LINQ: http://scalamacros.org/paperstalks/2013-12-02-WhatAreMacrosGoodFor.pdf .



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow