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: ┃ B T ┃
Length: 5500 (0x157c) Types: TextFile Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
separate (Expertsystem) package body Tuple is function Cardinality (Thetuple : Tuple.Object) return Natural is begin return Thetuple.Count; end Cardinality; function Isnull (Thetuple : Tuple.Object) return Boolean is begin return Thetuple.Count = 0; end Isnull; function Isnotnull (Thetuple : Tuple.Object) return Boolean is begin return Thetuple.Count /= 0; end Isnotnull; procedure Forall (Thetuple : Tuple.Object) is begin for I in 1 .. Thetuple.Count loop Action (Get (Thetuple, I)); end loop; end Forall; function First (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 1); end First; function Second (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 2); end Second; function Third (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 3); end Third; function Fourth (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 4); end Fourth; function Fifth (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 5); end Fifth; function Sixth (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 6); end Sixth; function Seventh (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 7); end Seventh; function Eighth (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 8); end Eighth; function Ninth (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 9); end Ninth; function Tenth (Thetuple : Tuple.Object) return Expertsystem.Reference is begin return Get (Thetuple, 10); end Tenth; function Get (Thetuple : Tuple.Object; Item : Positive := 1) return Expertsystem.Reference is begin if Item > Thetuple.Count then return Nullreference; else return Thetuple.Cells (Item); end if; end Get; procedure Add (Thetuple : in out Tuple.Object; Aref : Expertsystem.Reference) is begin if Thetuple.Count = Thetuple.Size then declare Bigtuple : Tuple.Object (Thetuple.Size + Thetuple.Size / 2); begin Bigtuple.Cells (1 .. Thetuple.Size) := Thetuple.Cells (1 .. Thetuple.Size); Bigtuple.Count := Thetuple.Count; Bigtuple.Unity := Thetuple.Unity; Thetuple := Bigtuple; end; end if; Thetuple.Count := Thetuple.Count + 1; Thetuple.Cells (Thetuple.Count) := Aref; end Add; procedure Merge (Thetuple : in out Tuple.Object; R1 : Expertsystem.Reference := Nullreference; R2 : Expertsystem.Reference := Nullreference; R3 : Expertsystem.Reference := Nullreference; R4 : Expertsystem.Reference := Nullreference; R5 : Expertsystem.Reference := Nullreference; R6 : Expertsystem.Reference := Nullreference; R7 : Expertsystem.Reference := Nullreference; R8 : Expertsystem.Reference := Nullreference; R9 : Expertsystem.Reference := Nullreference; R10 : Expertsystem.Reference := Nullreference) is begin if R1 /= Nullreference then Add (Thetuple, R1); end if; if R2 /= Nullreference then Add (Thetuple, R2); end if; if R3 /= Nullreference then Add (Thetuple, R3); end if; if R4 /= Nullreference then Add (Thetuple, R4); end if; if R4 /= Nullreference then Add (Thetuple, R4); end if; if R5 /= Nullreference then Add (Thetuple, R5); end if; if R6 /= Nullreference then Add (Thetuple, R6); end if; if R7 /= Nullreference then Add (Thetuple, R7); end if; if R8 /= Nullreference then Add (Thetuple, R8); end if; if R9 /= Nullreference then Add (Thetuple, R9); end if; if R10 /= Nullreference then Add (Thetuple, R10); end if; end Merge; function Asobject (Aref : Expertsystem.Reference) return Tuple.Object is Result : Tuple.Object; begin Add (Result, Aref); return Result; end Asobject; procedure Sort (Thetuple : in out Tuple.Object) is Repere : Integer range Thetuple.Cells'First - 1 .. Thetuple.Cells'Last; Nombre : Expertsystem.Reference; begin for I in Thetuple.Cells'First + 1 .. Thetuple.Count - 1 loop Nombre := Thetuple.Cells (I); Repere := I - 1; while (Repere /= Thetuple.Cells'First - 1) and then (Nombre < Thetuple.Cells (Repere)) loop Thetuple.Cells (Repere + 1) := Thetuple.Cells (Repere); Repere := Repere - 1; end loop; Thetuple.Cells (Repere + 1) := Nombre; end loop; end Sort; end Tuple;