我想做一个叫做'load'的函数,它从另一个文件中导入函数的定义。我知道如何导入模块,但在我的程序中,我希望函数的定义根据使用这个新函数“加载”哪个模块而改变。有没有办法做到这一点?有没有更好的方式来编写我的程序,这样就没有必要?导入模块作为一个函数,用字符串作为输入
我认为它的类型签名会看起来像: 负载::字符串 - > IO() 其中字符串被加载(和模块在同一个目录)模块的名称。
编辑:感谢所有的答复。大多数人都认为,这不是做我想做的最好的方式。相反,是否有办法在I/O程序中声明一个全局变量。也就是说,我需要它,如果我在类型为String - > IO()的函数中键入(函数“thing”),我仍然可以在GHCi中键入'thing'以获取赋值给它的值...任何建议?
你能举一个你认为这会有用的例子吗?我有一种感觉是不可能的(或者至少是容易的),但我相信有更好的东西可以解决你的问题。我只是不确定你面临的实际问题是什么。 – 2012-01-07 06:31:15
做这样的事情是...... *可能*,但是实际上你不想这么做,除非你试图写GHCi之类的东西。 – 2012-01-07 06:33:47