[英]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.