Chapter 39

module System.Environment (  
    getArgs,  getProgName,  getEnv  
  ) where

getArgs :: IO [String]
Computation getArgs returns a list of the program’s command line arguments (not including the program name).
getProgName :: IO String
Computation getProgName returns the name of the program as it was invoked.

However, this is hard-to-impossible to implement on some non-Unix OSes, so instead, for maximum portability, we just return the leafname of the program as invoked. Even then there are some differences between platforms: on Windows, for example, a program invoked as foo is probably really FOO.EXE, and that is what getProgName will return.

getEnv :: String -> IO String
Computation getEnvvar returns the value of the environment variable var.

This computation may fail with: