我正在尋找一種方法來從一個字符串加載Haskell函數來運行。我事先知道類型,但不知道函數的內容。加載動態哈希克爾模塊
理想情況下,解決方案會很快,不需要在IO中運行。
我一直在尋找提示(Language.Haskell.Interpreter),但它不適合帳單(eval調用顯示,模塊必須在文件中)。
任何幫助,將不勝感激。
我正在尋找一種方法來從一個字符串加載Haskell函數來運行。我事先知道類型,但不知道函數的內容。加載動態哈希克爾模塊
理想情況下,解決方案會很快,不需要在IO中運行。
我一直在尋找提示(Language.Haskell.Interpreter),但它不適合帳單(eval調用顯示,模塊必須在文件中)。
任何幫助,將不勝感激。
抽象的答案是,你必須要做出(->)
的Read
一個實例(也可能是Show,而你在它)
如何在地球上,你應該做的是,我不知道。解釋代碼是一件不小的任務。
如果你正在處理簡單的函數,我會建議創建一個代數數據類型來表示它們。
data Fun = Add | Subtract | Multiply deriving (Eq, Show, Read)
runFun Add = (+)
runFun Subtract = (-)
runFun Multiply = (*)
*Main> runFun (read "Add") 2 3
5
*Main> runFun (read "Multiply") 2 3
6
*Main> runFun (read "Subtract") 2 3
-1
我讀http://stackoverflow.com/questions/712696/is-there-a-quick-starting-haskell-interpreter-suitable-for-scripting,但unhelped – amccausl
你是否在以最靜態和安全強調語言之一的方式要求'eval'?多麼諷刺... – delnan
不一定。構建純度和沙盒的語言似乎是動態編譯的絕佳語言。 – amccausl