2012-04-04 43 views

回答

5

不是直接的,因爲模塊導入是在編譯時用GHC解決的。但是,如果你正在使用Cabal(!你應該是),你可以有條件地根據configuration flag取決於封裝,然後用CPP擴展取決於依賴是否存在編譯代碼:

#if MIN_VERSION_somepackage(0,0,0) 
...code using somepackage... 
#else 
...code not using somepackage... 
#endif 

這是一種尷尬,雖然,所以我不建議使用它,除非你真的需要它...

1

編號Haskell編譯器會拒絕任何導入找不到的模塊的程序,就像拒絕使用未定義的函數一樣。

1

此外,您可能能夠在運行時,如果你使用plugins使用新庫。

相關問題