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: 1441 (0x5a1) Types: TextFile Names: »V«
└─⟦5829e5ed5⟧ Bits:30000534 8mm tape, Rational 1000, RCI 2_0_5 └─ ⟦c9a165082⟧ »DATA« └─⟦2162db02b⟧ └─⟦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 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;