Haskell มีฟังก์ชัน Identity ซึ่งส่งคืนอินพุตที่ไม่เปลี่ยนแปลง คำจำกัดความนั้นง่ายมาก:
id :: a -> a
id x = x
ดังนั้นเพื่อความสนุกสนานสิ่งนี้ควรส่งออก8
:
f = id id id id id id id id id id id id id id id id id id id id id id id id id id id
main = print $ f 8
หลังจากนั้นไม่กี่วินาที (และหน่วยความจำประมาณ 2 GB ตามตัวจัดการงาน) การคอมไพล์ล้มเหลวด้วยghc: out of memory
. ghci: out of memory
ในทำนองเดียวกันล่ามกล่าวว่า
เนื่องจากid
เป็นฟังก์ชันที่ค่อนข้างเรียบง่ายฉันจึงไม่คาดหวังว่ามันจะเป็นภาระหน่วยความจำในเวลาทำงานหรือเวลาคอมไพล์ หน่วยความจำทั้งหมดถูกใช้เพื่ออะไร?
id
s เหล่านั้น ใน VIM กับเคอร์เซอร์ในความหมายของการทำเช่นนี้:f
:s/id id/id . id ./g