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
- Thư viện Haskell System.IO: Tài liệu chi tiết về System.IO.
- Learn You a Haskell for Great Good!: Một cuốn sách giới thiệu về Haskell bao gồm I/O.