Czy istnieje odpowiednik drzew wyrażeń .net
, które stanowią podrzędny LINQ dla JVM
? Chciałbym zaimplementować niektóre struktury kodu podobne do LINQ w Scala
i zastanawiam się, czy muszę też przetasować własną bibliotekę drzewek wyrażeń.Jawne drzewa wyrażeń
Aktualizacja: Nie jestem zainteresowany samym odpowiednikiem linq. .net ma duży zestaw narzędzi drzewa ekspresji, które ułatwiają dynamiczne kompilowanie kodu w czasie wykonywania, dzięki czemu można go wywoływać z kodu. Projekt, który chcę podjąć, nie ma związku z bazami danych. Drzewa ekspresji to łatwy sposób opisywania kodu działającego na danych.
Jeśli nie ma biblioteki, moim drugim rozwiązaniem jest stworzenie takiego, który emituje kod bajtowy.
Dla JAVA spróbuj Quare (codehaus). ALE, o ile JAVA nie obsługuje funkcji wysokiego rzędu (funkcjonuje jako członkowie pierwszej klasy), nie wierzę, że te "biblioteki" będą odczuwać prawdziwy LINQ. –
Steve - czy kiedykolwiek miałeś z tym coś wspólnego? – MalcomTucker
Nie. Właśnie wróciliśmy do okien i używaliśmy okien. Dla niektórych rzeczy użyliśmy LLVM z C++ na unixie. Jednakże izolujemy pliki java i używamy .net do wszystkiego, co wymaga dynamicznego kodegena. –