Lettura degli argomenti della riga di comando

Haskell:
Lettura degli argomenti della riga di comando

Come Fare:

Con Haskell, utilizziamo il modulo System.Environment per afferrare questi argomenti. Ecco un esempio semplice:

import System.Environment (getArgs)

main :: IO ()
main = do
    args <- getArgs
    print args

Se esegui questo programma così runhaskell myprogram.hs arg1 arg2, otterrai:

["arg1", "arg2"]

Per un uso pratico, guardiamo un esempio dove sommiamo numeri passati come argomenti:

import System.Environment (getArgs)
import Text.Read (readMaybe)

main :: IO ()
main = do
    args <- getArgs
    let nums = mapM readMaybe args :: Maybe [Int]
    case nums of
        Just numbers -> print $ sum numbers
        Nothing -> putStrLn "Per favore, inserisci solo numeri."

Se lanci runhaskell sum.hs 1 2 3, otterrai 6.

Approfondimento:

Haskell legge gli argomenti da riga di comando tramite il modulo System.Environment. Vecchie versioni di Haskell avevano approcci diversi, ma questo è diventato lo standard.

Esistono alternative:

  • getArgs restituisce una lista di stringhe. Per qualcosa di più robusto, si usa optparse-applicative o GetOpt.
  • Per applicazioni complesse, optparse-applicative fornisce un’interfaccia tipo DSL per definire le opzioni.

La gestione degli argomenti in Haskell è puramente funzionale ed è una pratica comune in applicazioni come script e tool CLI.

Vedi Anche: