Haskell:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ
วิธีทำ:
import System.Environment (getArgs)
main :: IO ()
main = do
args <- getArgs
putStrLn ("Hello, " ++ show args ++ "!")
เรียกใช้โดยส่ง “world” เป็นอาร์กิวเมนต์:
$ runhaskell yourprogram.hs world
Hello, ["world"]!
ลงลึก
Haskell เป็นภาษาที่เรียบร้อย มีรากฐานในยุค 80 นิยมความบริสุทธิ์และการพิมพ์แบบสแตติก มันได้มีวิธีจัดการอาร์กิวเมนต์บนคอมมานด์ไลน์ตั้งแต่ยุคแรกๆ ในภาษาอื่นอาจเป็นเรื่องที่ค่อนข้างกระบวนการ แต่ที่นี่ เราพูดถึงโมนาด IO เพื่อจัดการกับโลกภายนอกที่ไม่แน่นอน
ทางเลือกอื่น? คุณสามารถใช้ไลบรารีอย่าง optparse-applicative
สำหรับงานที่ซับซ้อน แต่สำหรับกรณีง่ายๆ getArgs
ก็ทำงานได้ดี
ใต้ฮูด? getArgs
เป็นฟังก์ชันที่ดำดิ่งไปในระบบของคุณ ค้นหาสิ่งก่อนหน้าชื่อโปรแกรมในเทอร์มินัล และส่งคืนรายการของสตริงให้คุณ มันถูกติดตั้งในไลบรารีฐานของ Haskell พึ่งพาฟังก์ชันระดับต่ำในภาษา C เพื่อทำงานหนัก ดีใช่ไหม?
ดูเพิ่มเติม
- ขุดลึกกับ
getArgs
: Hoogle on System.Environment - ก้าวขึ้นในการวิเคราะห์อาร์กิวเมนต์: optparse-applicative on Hackage