คำถามติดแท็ก polyvariadic

1
Haskell printf ทำงานอย่างไร
ความปลอดภัยของ Haskell ไม่เป็นสองรองใครในภาษาที่พิมพ์ขึ้นเอง แต่มีเวทมนตร์ลึก ๆ เกิดขึ้นกับText.Printfที่ดูเหมือนจะเป็นประเภทว่องไว > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 ความมหัศจรรย์ที่อยู่เบื้องหลังสิ่งนี้คืออะไร? วิธีสามารถText.Printf.printfฟังก์ชั่นใช้การขัดแย้ง variadic เช่นนี้หรือไม่ เทคนิคทั่วไปที่ใช้ในการอนุญาตให้มีอาร์กิวเมนต์ตัวแปรใน Haskell คืออะไรและทำงานอย่างไร (หมายเหตุด้านข้าง: ความปลอดภัยบางประเภทหายไปเมื่อใช้เทคนิคนี้) > :t printf "%d\n" "foo" printf "%d\n" "foo" :: (PrintfType ([Char] -> t)) => t
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.