Hello Awsaf, 

you should probably look further into the topic of "IO in Haskell" and "Monads". Then you can use impure functions like readFile (http://hackage.haskell.org/package/base-4.11.1.0/docs/Prelude.html#v:readFile ) or getArgs (http://hackage.haskell.org/package/base-4.11.1.0/docs/System-Environment.html#v:getArgs). A naive solution might look like this: 
 

module Main where
 
import           System.Environment (getArgs)
 
main = do
  (fileName:_) <- getArgs
  unsortedList <- read <$> readFile fileName
  let sorted = yourMergeSortFunction unsortedList
  print sorted -- maybe you like to print your sorted list


Best regards,
Tobias



----- Nachricht von Awsaf Rahman <awsafrahman1704@gmail.com> ---------
     Datum: Thu, 5 Jul 2018 22:21:15 +0200
       Von: Awsaf Rahman <awsafrahman1704@gmail.com>
Antwort an: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org>
   Betreff: [Haskell-beginners] Passing a file containing a list as an input
        An: beginners@haskell.org

Hello everyone! 
 
I am really struggling with Haskell I/O. 
 
I have written a mergesort program and as an input to that program I want to use a file containing a list of 1000 integers. Let's say the contents of the file look like this
 
[120, 400, 500 , 20, 100 ..] 
 
How can I achieve that? I am trying to write a main function that takes the file as an input and passes the list to my mergesort function.. 
 
Regards
Awsaf Rahman




----- Ende der Nachricht von Awsaf Rahman <awsafrahman1704@gmail.com> -----