Stampa dell'output di debug

Haskell:
Stampa dell'output di debug

How to:

Per stampare output in Haskell, possiamo usare le funzioni print, putStrLn o putStr. Ecco alcuni esempi:

main :: IO ()
main = do
    -- Stampa una stringa seguita da un newline
    putStrLn "Questo è un debug output!"

    -- Stampa una stringa senza newline
    putStr "Stampa senza newline."

    -- Stampa una variabile (dovremo derivare la typeclass Show)
    print (42 :: Int)

Questo produrrà:

Questo è un debug output!
Stampa senza newline.42

Deep Dive

Haskell offre un approccio funzionale alla programmazione, il che lo rende diverso dall’utilizzare il debug in linguaggi imperativi. Nato nel 1990, non fu pensato con un grande enfasi sul debug di tipo imperativo. Ci sono alternative per il debug più avanzato, come l’uso di Debug.Trace che permette di inserire istruzioni di stampa durante lo sviluppo che non alterano il flusso del programma.

Ad esempio, possiamo usare trace in questo modo:

import Debug.Trace

myFunction :: Integer -> Integer -> Integer
myFunction x y = trace ("myFunction riceve x=" ++ show x ++ " y=" ++ show y) (x + y)

L’utilizzo di trace non è raccomandato per il codice in produzione, ma può essere utile in fase di sviluppo. La libreria Debug.Trace dovrebbe essere importata soltanto quando strettamente necessario.

See Also