DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 1569 (0x621) Types: TextFile Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦12c68c704⟧ └─⟦this⟧ └─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦220843204⟧ └─⟦this⟧
generic type Element is private; -- must be a pure value -- ie. no initialization or finalization is necessary -- = and := are equality and copy pragma Must_Be_Constrained (Yes => Element); package List_Generic is pragma Subsystem (Abstract_Types, Private_Part => Open); pragma Module_Name (4, 710); type List is private; -- may generate garbage -- = and := operate on references -- "make" constructs lists with structural sharing -- constraint error is raised when nil i provided to any of -- first, rest, set_first, or set_rest function Make (X : Element; L : List) return List; function Nil return List; function Is_Empty (L : List) return Boolean; procedure Free (L : in out List); -- make L empty function First (L : List) return Element; function Rest (L : List) return List; procedure Set_Rest (L : List; To_Be : List); procedure Set_First (L : List; To_Be : Element); function Length (L : List) return Natural; type Iterator is private; procedure Init (Iter : out Iterator; L : List); procedure Next (Iter : in out Iterator); function Value (Iter : Iterator) return Element; function Done (Iter : Iterator) return Boolean; private type Listdata; type List is access Listdata; -- variables of type list are initialized to null type Listdata is record First : Element; Rest : List; end record; type Iterator is new List; end List_Generic;