Commandoregelargumenten lezen

Haskell:
Commandoregelargumenten lezen

Hoe te:

import System.Environment (getArgs)

main :: IO ()
main = do
  args <- getArgs
  putStrLn ("Hallo, " ++ show args ++ "!")

Voer het uit door “wereld” als een argument door te geven:

$ runhaskell jouwprogramma.hs wereld
Hallo, ["wereld"]!

Diepgaande Duik

Haskell is een nette taal, met wortels in de jaren 80, die zuiverheid en statische typen vooropstelt. Al vanaf de vroege dagen heeft het een manier om met commandoregelargumenten om te gaan. In andere talen kan dit vrij procedureel spul zijn, maar hier bevinden we ons in het rijk van IO monaden om de wilde buitenwereld aan te pakken.

Alternatieven? Je kunt je helemaal uitleven met bibliotheken zoals optparse-applicative voor complexe zaken, maar voor eenvoudige gevallen doet getArgs de truc.

Achter de schermen? getArgs is een functie die in je systeem duikt, ophaalt wat er op de programmanaam in de terminal volgde, en je een lijst met strings geeft. Het is geïmplementeerd in de basisbibliotheek van Haskell, leunend op lagere niveau C-functies om het zware werk te doen. Netjes, toch?

Zie Ook