Scrivere sull'errore standard

Haskell:
Scrivere sull'errore standard

Come fare:

In Haskell, scrivere su stderr è semplice con il modulo System.IO della libreria base. Qui sotto c’è un esempio base per dimostrare:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "Questo è un messaggio di errore."

L’output di questo programma su stderr sarebbe:

Questo è un messaggio di errore.

Se stai lavorando in un’applicazione più complessa, o se hai bisogno di un controllo migliore sul logging (inclusi gli errori), potresti optare per una libreria di terze parti. Una scelta popolare è monad-logger che si integra con lo stile di programmazione mtl di Haskell. Ecco un piccolo snippet usando monad-logger:

{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Logger

main :: IO ()
main = runStderrLoggingT $ do
  logErrorN "Questo è un messaggio di errore usando monad-logger."

Quando eseguito, la versione monad-logger emette in modo simile un messaggio di errore, ma è dotata di più contesto come timestamp o livelli di log, a seconda della configurazione:

[Error] Questo è un messaggio di errore usando monad-logger.

Entrambi i metodi servono allo scopo di scrivere su stderr, con la scelta che dipende in gran parte dalla complessità e dalle esigenze della tua applicazione.