2011-02-14 262 views
7

運行我的Haskell函數可以說我有一個Haskell功能添加math.hs我怎樣才能通過Java

我怎樣才能運行通過Java程序添加功能和輸出作爲存儲一個變量?

也許像下面這樣:

public int runHaskell(String haskellFile) { 
    int output; 
    //run add function from file 'math.hs' and store result to output 
    return output; 
} 

(如果需要的話我還可以訪問到目標文件:math.o和解釋文件math.hi以及可執行主.EXE

+0

這可能涉及到一些JNI的巧妙技巧。我很好奇看到答案是什麼。 – templatetypedef 2011-02-14 03:32:10

+1

@templatetypedef我不明白這與使用JNI和C有什麼不同(GHC可以生成中間C代碼) – 2011-02-14 03:36:33

回答

4

最簡單的(但很笨拙)方式:

Runtime.exec()

然後你可以監聽Haskell程序的輸出,然後解析它的結果。

另外,你可以寫一個JNI的小包裝器,直接調用你的Haskell的東西。