Haskell:
Ghi vào lỗi chuẩn

Cách thực hiện:

Sử dụng System.IO để viết ra stderr. Dưới đây là một ví dụ đơn giản:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "Điều này sẽ đi vào stderr"
  putStrLn "Điều này sẽ đi vào stdout"

Kết quả khi chạy chương trình:

Điều này sẽ đi vào stdout

Để xem đầu ra của stderr, hãy chuyển hướng nó:

runhaskell your_program.hs 2> error.log

error.log giờ đây chứa “Điều này sẽ đi vào stderr”.

Sâu hơn

Hệ thống IO của Haskell phân biệt giữa stdout và stderr, duy trì các quy ước của Unix. Trước Haskell, các ngôn ngữ như C đã đặt tiền lệ về việc tách các luồng — stdout cho kết quả, stderr cho lỗi và nhật ký.

Những cách khác để xuất ra bao gồm sử dụng các thư viện như System.Log.Logger cho việc ghi nhật ký phức tạp hơn. Về cài đặt, stderr trong Haskell là một Handle, giống như một tay cầm tệp, nhưng đã được định sẵn để tham chiếu đến đầu ra lỗi của hệ thống.

Xem thêm