Haskell: How can I use "2 functions with the same name"?
haskell
Solution
You almost had it:
Data.List.insert 4 [1, 3, 5, 7, 9]
And
Main.insert 4 [1, 3, 5, 7, 9]
-- or if not in Main
Full.Qualified.CurrentPackage.insert 4 [1, 3, 5, 7, 9]
But you have to import the package first. I would recommend
import qualified Data.List
-- or
import qualified Data.List as L
If you use the second form you can just do
L.insert 4 [1, 3, 5, 7, 9]
As a full example, your file could look like
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]
All of these would work.
Problem
Haskell: how to use the function have the same name but belongs to different package? This is my code ``` insert a = a insert2 a = Data.List.insert 4 [1,3,5,7,9] ``` The error is : not in scope: data constructor 'Data.List'. Even i change it to ``` Data.List::insert 4 [1,3,5,7,9] --the error still exists ``` How can I fix it.