2012-03-10 13 views
13

Jakie są obecne rozwiązania dla interakcji Haskell/Java? Widziałem artykuł o Lambadzie autorstwa Meijera i Finne'a. Istnieje projekt o nazwie GCJNI, ale wydaje się on być nieważny - linki do niego są zepsute. Czy jest coś, czego można użyć po wyjęciu z pudełka?Interoperacyjność Java Haskell

+2

związane: http://stackoverflow.com/questions/2141148/best-way -to-call-haskell-functions-from-within-java http://stackoverflow.com/questions/7961335/calling-haskell-from-java-with-c-in-between http://stackoverflow.com/questions/4988598/how-can-i-run-my-haskell-functions-through-java –

+1

Niezupełnie Haskell, ale prawie - http://code.google.com/p/frege - i kompiluje się do Javy – Ingo

Odpowiedz

9

Za pomocą GHC FFI można utworzyć shared library, który eksportuje funkcje z ziemi Haskell, którą Java może następnie użyć przez JNA. Alternatywnie możesz wziąć tę samą bibliotekę współdzieloną i napisać kod kleju, aby odsłonić go przez JNI, aby uzyskać bardziej "Java-y" interfejs. Możesz też odejść i zdemaskować JNI za pośrednictwem FFI do Haskella, aby naprawdę włączyć Javę (jest to trochę podobne podejście, jakie przyjmuje gazeta Lambada).

Wierzę, że wspólna biblioteka Haskell + JNA byłaby najprostszym, najłatwiejszym podejściem. Zakłada się, że łatwiej jest ujawnić niektóre funkcje Haskell w Javie, niż wystawiać niektóre obiekty Javy na Haskell. Aby uzyskać wgląd w odwrotną stronę, możesz zainteresować się Salsa, która jest C#, a nie Java, ale zasady projektowania interfejsów mogą być interesujące.

+2

Naprawdę ciężko jest zautomatyzować generowanie interfejsów Haskell z kodu Java. Czy jest jakiś postęp? –