DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: B T

⟦94922ef43⟧ TextFile

    Length: 2758 (0xac6)
    Types: TextFile
    Names: »B«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

--=====================================================================
pragma Page;

package body Set_Package is

    function "*" (Set_1 : Set; Set_2 : Set) return Set is
        -- intersection
    begin
        return (Set_1 and Set_2);
    end "*";
    -------------------------------------------------------------------------


    function "+" (Element : Universe; Set_1 : Set) return Set is
        Value_Set : Set := Set_1;
    begin
        Value_Set (Element) := True;
        return Value_Set;
    end "+";
    -------------------------------------------------------------------------

    function "+" (Set_1 : Set; Set_2 : Set) return Set is
    begin
        return (Set_1 or Set_2);
    end "+";

    -------------------------------------------------------------------------
    function "+" (Set_1 : Set; Element : Universe) return Set is
        Value_Set : Set := Set_1;

    begin
        Value_Set (Element) := True;
        return Value_Set;
    end "+";

    -------------------------------------------------------------------------
    function "-" (Set_1 : Set; Set_2 : Set) return Set is
    begin
        return (Set_1 and (not Set_2));
    end "-";
    -------------------------------------------------------------------------

    function "-" (Set_1 : Set; Element : Universe) return Set is
        Value_Set : Set := Set_1;

    begin
        Value_Set (Element) := False;
        return Value_Set;
    end "-";
    -------------------------------------------------------------------------

    function "<=" (Set_1 : Set; Set_2 : Set) return Boolean is
        Value_Set : Set := (Set_1 and Set_2);
    begin
        return (Value_Set = Set_1);
    end "<=";
    -------------------------------------------------------------------------

    function "<" (Set_1 : Set; Set_2 : Set) return Boolean is
        Value_Set : Set := (Set_1 and Set_2);
    begin
        return ((Value_Set = Set_1) and (Value_Set /= Set_2));
    end "<";
    -------------------------------------------------------------------------

    function Is_A_Member (Element : Universe; Of_Set : Set) return Boolean is
    begin
        return Of_Set (Element);
    end Is_A_Member;
    -------------------------------------------------------------------------

    function Is_Empty (Set_1 : Set) return Boolean is

    begin
        return (Set_1 = Null_Set);
    end Is_Empty;
    -------------------------------------------------------------------------

    function Number_In (Set_1 : Set) return Number is

        Count : Integer := 0;

    begin
        for Index in Universe loop
            if Set_1 (Index) then
                Count := Count + 1;
            end if;
        end loop;

        return Count;
    end Number_In;
end Set_Package;