Haskell:
Skriva till standardfel

Hur man gör:

I Haskell är det enkelt att skriva till stderr med basbibliotekets System.IO-modul. Nedan följer ett grundläggande exempel för att demonstrera:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "Detta är ett felmeddelande."

Utdata från detta program till stderr skulle vara:

Detta är ett felmeddelande.

Om du arbetar med en mer komplex applikation, eller om du behöver bättre kontroll över loggning (inklusive fel), kan du överväga att använda ett tredjepartsbibliotek. Ett populärt alternativ är monad-logger som integreras med Haskell-programmeringsstilen mtl. Här är ett litet kodsnutt som använder monad-logger:

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

main :: IO ()
main = runStderrLoggingT $ do
  logErrorN "Detta är ett felmeddelande som använder monad-logger."

När den körs, ger monad-logger-versionen liknande ut en felmeddelande, men den är utrustad med mer sammanhang som tidsstämplar eller loggnivåer, beroende på konfigurationen:

[Error] Detta är ett felmeddelande som använder monad-logger.

Båda metoderna tjänar syftet att skriva till stderr, med valet som i stor utsträckning beror på din applikations komplexitet och behov.