【问题标题】:Haskell: How can I use "2 functions with the same name"?Haskell:如何使用“2 个同名函数”?
【发布时间】:2014-01-30 07:10:55
【问题描述】:

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

我该如何解决。

【问题讨论】:

    标签: haskell


    【解决方案1】:

    你差点就吃完了:

    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]
    

    所有这些都会起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多