มอง life time ของ Rust เป็น partially ordered set

ใน blog นี้ https://ticki.github.io/blog/lambda_crabs_1/ ที่ผมอ่านนานมาก เพราะอ่านไป 2-3 บรรทัดแล้วหลับ

life time เรียกอีกอย่างว่า region ก็ได้ เป็นเวลาหรือพื้นที่ใน code ที่ตัวแปรหนึ่งใช้งานได้ ใน blog นี้เรียกว่าอธิบายสัก 90% แทบจะไม่มี code เลย ถ้าชอบแนวอธิบาย blog นี้มันดูเหมาะมาก ๆ

life time ของ Rust นี่เราคาดเดาได้เลยว่ามันจะจบเมื่อไหร่ แล้วมันก็มักจะตัดสินตั้งแต่ตอน compile เลย ไม่เหมือน Lisp ที่ garbage collector มันไปทำงานเวลารัน แต่ปัญหา programmer ไม่รู้ว่า compiler มันตัดสิน life time อย่างไร ใน blog นี้เขาก็เลยใช้คณิตศาสตร์มาช่วยอธิบาย

อันนี้เขาก็บอกว่า region นี่มองมันว่าเป็น partially order set หรือเรียกสั้น ๆ ว่า poset นะ ซึ่งเห็น poset แล้วก็น่าจะเดาคร่าว ๆ ได้ว่าเดี๋ยวตอนต่อไปจะมี semiring และ lattice ต่อแหง ๆ

อีกประเด็นก็คือ life time นี้เวลา implement มันก็จะเป็น type นี่เอง แล้ว Rust compiler จะไป check life time ผ่านเหมือนการ check sub type

อ่านแล้วก็รู้สึกว่าเจ๋งดีแต่ไม่รู้ว่ามีประโยชน์อะไรหรือเปล่า คงต้องอ่านตอน 2 และตอน 3 ต่อไปก่อน แต่ก็ยังอ่านไม่เจบอีกตามเคย

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s