Haskell:
Đọc các đối số dòng lệnh
Làm thế nào:
import System.Environment (getArgs)
main :: IO ()
main = do
args <- getArgs
putStrLn ("Xin chào, " ++ show args ++ "!")
Chạy nó với việc truyền “thế giới” làm một đối số:
$ runhaskell yourprogram.hs thế giới
Xin chào, ["thế giới"]!
Sâu hơn
Haskell là một ngôn ngữ tuyệt vời, có nguồn gốc từ những năm 80, ưa chuộng tính khiết khiết và kiểu gõ tĩnh. Nó đã có cách xử lý các đối số dòng lệnh ngay từ những ngày đầu. Trong các ngôn ngữ khác, điều này có thể là những thứ tương đối theo thủ tục, nhưng ở đây, chúng ta ở trong lĩnh vực của monad IO để đối phó với thế giới bên ngoài hoang dã.
Các lựa chọn khác? Bạn có thể thỏa sức với các thư viện như optparse-applicative
cho những việc phức tạp, nhưng cho những trường hợp đơn giản, getArgs
ổn thỏa.
Bên trong nó hoạt động như thế nào? getArgs
là một hàm lặn vào hệ thống của bạn, thu thập bất cứ thứ gì theo sau tên chương trình trong terminal, và trả cho bạn một danh sách các chuỗi. Nó được triển khai trong thư viện cơ bản của Haskell, dựa vào các hàm C cấp thấp để làm công việc vất vả. Tuyệt vời, phải không?
Xem thêm
- Đi sâu hơn với
getArgs
: Hoogle trên System.Environment - Nâng cấp trong việc phân tích đối số: optparse-applicative trên Hackage