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
- Learn You a Haskell for Great Good! - Un’introduzione amichevole al linguaggio Haskell.
- Haskell Debugging - Una pagina wiki con strumenti e tecniche per il debugging in Haskell.
- Hoogle - Un motore di ricerca per le librerie Haskell, utile quando cerchi funzioni specifiche per il debug.