คำถามติดแท็ก weak-head-normal-form

6
รูปแบบปกติที่อ่อนแอคืออะไร
สิ่งที่ไม่อ่อนแอหัวหน้าฟอร์มปกติ (WHNF) หมายถึง? อะไรรูปแบบหัวปกติ (HNF) และปกติแบบฟอร์ม (NF) หมายถึง? รัฐในโลกแห่งความจริง Haskell : ฟังก์ชัน seq ที่คุ้นเคยประเมินค่านิพจน์กับสิ่งที่เราเรียกว่าเฮดฟอร์มปกติ (ตัวย่อ HNF) มันจะหยุดเมื่อถึงตัวสร้างชั้นนอกสุด ("หัว") สิ่งนี้แตกต่างจากฟอร์มปกติ (NF) ซึ่งนิพจน์ได้รับการประเมินอย่างสมบูรณ์ นอกจากนี้คุณยังจะได้ยินโปรแกรมเมอร์ Haskell อ้างถึงรูปแบบปกติของหัวอ่อน (WHNF) สำหรับข้อมูลปกติรูปแบบปกติของหัวที่อ่อนแอจะเหมือนกับรูปแบบปกติของหัว ความแตกต่างเกิดขึ้นสำหรับฟังก์ชั่นเท่านั้นและลึกซึ้งเกินกว่าที่จะเกี่ยวข้องกับเราที่นี่ ฉันได้อ่านทรัพยากรและคำจำกัดความ ( Haskell WikiและHaskell Mail ListและFree Dictionary ) แล้ว แต่ฉันไม่เข้าใจ บางคนสามารถยกตัวอย่างหรือให้คำจำกัดความของคนธรรมดาได้หรือไม่? ฉันเดาว่ามันจะคล้ายกับ: WHNF = thunk : thunk HNF = 0 : thunk NF …

1
Haskells Weak Head ฟอร์มปกติ
ฉันสะดุดสิ่งที่น่ารำคาญบางอย่าง ฉันรู้ว่า Haskell ทำงานได้กับรูปแบบปกติของผู้อ่อนแอ (WHNF) และฉันรู้ว่านี่คืออะไร พิมพ์รหัสต่อไปนี้เป็น ghci (ฉันใช้คำสั่ง: sprint ซึ่งลดการแสดงออกของ WHNF ให้เป็นความรู้ของฉัน): let intlist = [[1,2],[2,3]] :sprint intlist ให้intlist = _ความรู้สึกแบบนี้กับฉันโดยสิ้นเชิง let stringlist = ["hi","there"] :sprint stringlist ให้stringlist = [_,_] สิ่งนี้ทำให้ฉันสับสนแล้ว แต่แล้ว: let charlist = [['h','i'], ['t','h','e','r','e']] :sprint charlist ให้อย่างแปลกใจ charlist = ["hi","there"] เท่าที่ผมเข้าใจ Haskell สตริงมีอะไรอย่างอื่นมากกว่ารายชื่อของตัวอักษรซึ่งดูเหมือนว่าจะได้รับการยืนยันโดยการตรวจสอบชนิดและ"hi" :: [Char]['h','i'] :: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.