Деревья выражений Java
Существует ли эквивалент .net
Деревья выражений, который под LINQ для JVM
? Я хотел бы реализовать некоторые структуры LINQ, такие как структуры кода в Scala
, и мне интересно, нужно ли мне также свернуть мою собственную библиотеку дерева выражений.
Обновление:
Меня не интересует эквивалент linq..net имеет большой набор инструментов дерева выражений, которые упрощают динамическую компиляцию кода во время выполнения, могут быть вызваны из вашего кода. Проект, который я хочу предпринять, не имеет отношения к базам данных. Дерево выражений обеспечивает простой способ описания кода, который работает с данными.
Если нет другой библиотеки, я думаю, это создать тот, который испускает байт-код.
Ответы
Ответ 1
Так как 2.10, Scala имеет макросы, которые дают вам доступ к абстрактным синтаксическим деревьям их аргументов во время компиляции: http://scalamacros.org/, Вот несколько примеров их использования, включая эскиз LINQ: http://scalamacros.org/paperstalks/2013-12-02-WhatAreMacrosGoodFor.pdf.
Ответ 2
Ближайшая вещь, о которой я знаю, это Julian Hyde linq4j и Optiq. Они имеют модель дерева выражений, поддерживают LINQ-подобную модель программирования (с учетом синтаксиса Java) против многих типов источников данных.