[英]Loading dynamic haskell module
我正在尋找一種從字符串加載Haskell函數以運行的方法。 我事先知道類型,但是不知道函數的內容。
理想情況下,解決方案將是快速的,並且不需要在IO中運行。
我一直在查看提示(Language.Haskell.Interpreter),但是它不適合使用帳單(顯示eval調用,模塊必須在文件中)。
任何幫助,將不勝感激。
抽象的答案是,您只需要使(->)
成為Read
的實例(並且可能在顯示時顯示 )。
我不知道你到底應該怎么做。 解釋代碼絕非易事。
如果您要處理簡單的函數,則建議創建一個代數數據類型來表示它們。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.