ลิเนียริตี้เป็นข้อ จำกัด ที่ไม่เพียงพอในการตรึงการเป็นตัวแทน stateful ที่ไม่ซ้ำกันดังนั้นคำตอบสำหรับคำถามของคุณขึ้นอยู่กับว่าคุณตีความตรรกะเชิงเส้นในแง่ของสถานะอย่างไร นี้มักจะปรากฏในวิธีการที่คุณจะต้องตีความกิริยา!
หากความหมายของการอ้างอิงที่คุณต้องการบอกว่าพอยน์เตอร์ทั้งหมดเป็นค่าที่ไม่ซ้ำกัน (กล่าวคือมีการอ้างอิงไปยังวัตถุมากที่สุด) จากนั้นโครงสร้างของกราฟและกราฟจะไม่สามารถแสดงออกได้เนื่องจากเหตุผลทางด้านความคิดที่ซ้ำซาก วัตถุเดียวกัน ในกรณีนี้จะต้องเป็นการคำนวณซึ่งจะสร้างค่าใหม่ประเภทเนื่องจากคุณต้องการแผนที่และδ : ! A ⊸ ! A ⊗ ! ε : ! A ⊸ A! AδA: ! A ⊸ ! A ⊗ ! εA: ! A ⊸ A
แต่สมมติว่าคุณต้องการเพื่อเป็นตัวแทนของการแบ่งปัน จากนั้นวัตถุสามารถถูกรวบรวมขยะด้วยการนับการอ้างอิงด้วย maps และสามารถรับรู้เป็นการดำเนินการซึ่งเพิ่งนับจำนวนการอ้างอิง ในกรณีนี้คุณไม่สามารถใช้ลิเนียริตี้เพื่อสมมติว่ามันปลอดภัยเสมอที่จะเปลี่ยนแปลงค่าเนื่องจากมีการแชร์ แต่คุณสามารถมั่นใจได้ว่าการจัดสรรหน่วยความจำทั้งหมดชัดเจนในโปรแกรมของคุณและไม่มีรอบในฮีปδ : ! A ⊸ ! A ⊗ ! ε : ! A ⊸ A! δA:!A⊸!A⊗!AϵA:!A⊸A
การนำไปใช้ในทางปฏิบัติส่วนใหญ่ของประเภทเชิงเส้นไม่ได้ใช้การตีความทั้งสองอย่างนี้ แต่ลำดับที่ถูกมองว่าเป็นหน่วยงานที่ duplicable ได้อย่างอิสระและสิ่งที่เราติดตามเส้นตรงในความเป็นจริงความสามารถในการ ความสามารถไม่ใช่ค่าแบบไทม์ พวกเขาเป็นหน่วยงานทางความคิดอย่างหมดจดซึ่งมีวัตถุประสงค์เพื่อเป็นตัวแทนของสิทธิ์ในการเข้าถึงการอ้างอิง แนวคิดคือคุณตั้งโปรแกรมในรูปแบบการอนุญาตให้ใช้สิทธิ์และแม้ว่าจะมีการอ้างอิงไปยังวัตถุเดียวกันจำนวนมากการอ่านหรือดัดแปลงชิ้นส่วนของรัฐจะเกิดขึ้นได้ก็ต่อเมื่อคุณมีความสามารถในการเข้าถึง และเนื่องจากความสามารถเป็นเส้นตรงคุณจึงรู้ว่ามีเพียงคุณเท่านั้นที่สามารถเปลี่ยนแปลงได้
newgetsetcopy::::∀α.α⊸∃c:ι.cap(c)⊗ref(α,c)∀α,c:ι.cap(c)⊗ref(α,c)⊸α⊗cap(c)⊗ref(α,c)∀α,c:ι.cap(c)⊗ref(α,c)⊗α⊸cap(c)⊗ref(α,c)∀α,c:ι.ref(α,c)⊸ref(α,c)⊗ref(α,c)
ใน API ที่ร่างไว้ด้านบน,มีช่วงเหนือ , ดัชนีโดเมนเวลารวบรวมบางส่วนและมีช่วงเหนือประเภท เรามีประเภทซึ่งเป็นความสามารถในการสร้างดัชนีโดยและประเภทซึ่งเป็นชนิดของการอ้างอิงไปยังเข้าถึงได้โดยความสามารถในการคการเรียกและในการอ้างอิงต้องใช้ความสามารถและการเรียกสร้างการอ้างอิงใหม่และความสามารถใหม่ที่แบ่งปันดัชนีทั่วไป อย่างไรก็ตามcιαcap(c)cref(α,c)αcg e ts e tคn E Wc o p y- การอ้างอิงไม่จำเป็นต้องเข้าถึงความสามารถใด ๆ ดังนั้นทุกคนสามารถคัดลอกการอ้างอิงได้ตราบใดที่พวกเขาไม่ได้มองเข้าไปข้างใน