Haskell:如何使用具有相同名称但属于不同包的函数?
这是我的代码
insert a = a
insert2 a = Data.List.insert 4 [1,3,5,7,9]
错误是:
不在范围内:数据构造函数“ Data.List”。
即使我将其更改为
Data.List::insert 4 [1,3,5,7,9] --the error still exists
我该如何解决。
您几乎拥有它:
Data.List.insert 4 [1, 3, 5, 7, 9]
和
Main.insert 4 [1, 3, 5, 7, 9]
-- or if not in Main
Full.Qualified.CurrentPackage.insert 4 [1, 3, 5, 7, 9]
但是您必须先导入软件包。我会推荐
import qualified Data.List
-- or
import qualified Data.List as L
如果您使用第二种形式,则可以
L.insert 4 [1, 3, 5, 7, 9]
举一个完整的例子,您的文件可能看起来像
module Main where
import qualified Data.List
import qualified Data.List as L
insert x xs = undefined -- Fill in your implementation here
main = do
print $ insert 4 [1, 3, 5, 7, 9]
print $ Main.insert 4 [1, 3, 5, 7, 9]
print $ Data.List.insert 4 [1, 3, 5, 7, 9]
print $ L.insert 4 [1, 3, 5, 7, 9]
所有这些都会起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句