Lecture des arguments de ligne de commande

Haskell:
Lecture des arguments de ligne de commande

How to:

Haskell rend la lecture des arguments de la ligne de commande assez simple avec le module System.Environment.

import System.Environment

main :: IO ()
main = do
    args <- getArgs
    case args of
        [name, age] -> putStrLn $ "Bonjour, " ++ name ++ "! Vous avez " ++ age ++ " ans."
        _           -> putStrLn "Usage: ./your_program <name> <age>"

Si vous compilez ce code et que vous l’exécutez avec des arguments, voici ce que cela donne :

$ ./your_program Jean 30
Bonjour, Jean! Vous avez 30 ans.

Deep Dive

La fonction getArgs fait partie de System.Environment et existe depuis les premières versions de Haskell. C’est la méthode de base pour accéder aux arguments de la ligne de commande, mais il existe des bibliothèques plus sophistiquées, comme optparse-applicative, qui offrent un parsing plus élaboré et des messages d’aide automatiques.

Sous le capot, getArgs appelle le code de votre système d’exploitation pour obtenir les arguments. Haskell repose sur une abstraction IO monad qui rend les effets secondaires comme la lecture des arguments explicitement gérés dans les types.

Par rapport aux autres langages, Haskell est unique avec ses fonctions pures et l’IO monad. Cette séparation renforce la fiabilité du code, mais peut être inhabituelle pour les nouveaux venus.

See Also