การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

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 เพื่อทำงานหนัก ดีใช่ไหม?

ดูเพิ่มเติม