Is there an equivalent of
.net's Expression Trees that underly LINQ for the
JVM? I would like to implement some LINQ like code structures in
Scala and I am wondering if I have to roll my own expression tree library also.
Update: I am not interested in a linq equivalent itself. .net has a large set of expression tree tools that make it easy to dynamically compile code at runtime can have it be callable from your code. The project I want to undertake has no relation to databases. Expression tree's provide an easy way to describe code that operates on data.
If there is no library my other option I think is to create one that emits byte code.
Since 2.10, Scala has macros, which give you access to abstract syntax trees of their arguments at compile-time: http://scalamacros.org/. Here are some examples of their usage including a sketch of LINQ: http://scalamacros.org/paperstalks/2013-12-02-WhatAreMacrosGoodFor.pdf.