我通常避免使用JNI类型的方法来跨运行时/语言进行链接。他们只是有太多的陷阱而没有什么好处。我发现跨流程边界工作更容易。尽管我从未在Haskell和Java上尝试过,但它们都具有支持XML
RPC的库,听起来很自然地适合您的工作。因此:将Haskell程序设置为“服务”,并在需要时调用其功能。

我通常避免使用JNI类型的方法来跨运行时/语言进行链接。他们只是有太多的陷阱而没有什么好处。我发现跨流程边界工作更容易。尽管我从未在Haskell和Java上尝试过,但它们都具有支持XML
RPC的库,听起来很自然地适合您的工作。因此:将Haskell程序设置为“服务”,并在需要时调用其功能。