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: 1475 (0x5c3) Types: TextFile Names: »V«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2 └─ ⟦77aa8350c⟧ »DATA« └─⟦f794ecd1d⟧ └─⟦4c85d69e2⟧ └─⟦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;