我想做一個叫做'load'的函數,它從另一個文件中導入函數的定義。我知道如何導入模塊,但在我的程序中,我希望函數的定義根據使用這個新函數「加載」哪個模塊而改變。有沒有辦法做到這一點?有沒有更好的方式來編寫我的程序,這樣就沒有必要?導入模塊作爲一個函數,用字符串作爲輸入
我認爲它的類型簽名會看起來像: 負載::字符串 - > IO() 其中字符串被加載(和模塊在同一個目錄)模塊的名稱。
編輯:感謝所有的答覆。大多數人都認爲,這不是做我想做的最好的方式。相反,是否有辦法在I/O程序中聲明一個全局變量。也就是說,我需要它,如果我在類型爲String - > IO()的函數中鍵入(函數「thing」),我仍然可以在GHCi中鍵入'thing'以獲取賦值給它的值...任何建議?
你能舉一個你認爲這會有用的例子嗎?我有一種感覺是不可能的(或者至少是容易的),但我相信有更好的東西可以解決你的問題。我只是不確定你面臨的實際問題是什麼。 – 2012-01-07 06:31:15
做這樣的事情是...... *可能*,但是實際上你不想這麼做,除非你試圖寫GHCi之類的東西。 – 2012-01-07 06:33:47