PreviousUpNext

15.3.542  src/lib/std/src/typelocked-rw-vector.api

## typelocked-rw-vector.api

# Compiled by:
#     src/lib/std/src/standard-core.sublib



# Generic interface for typelocked rw_vector packages.



###                        "My own suspicion is that the universe is
###                         not only queerer than we suppose,
###                         but queerer than we can suppose."
###
###                                        -- J. B. S. Haldane



api Typelocked_Rw_Vector {
    #
    eqtype Rw_Vector;
    Element;
    Vector;

    max_len:  Int;

 #  rw_vector creation functions 
    make_rw_vector: (Int, Element)          -> Rw_Vector;
    from_list:       List( Element )        -> Rw_Vector;
    tabulate:       (Int, (Int -> Element)) -> Rw_Vector;

    # Note:  The (_[])   enables   'vec[index]'           notation;
    #        The (_[]:=) enables   'vec[index] := value'  notation;

    length:     Rw_Vector -> Int;
    get:       (Rw_Vector, Int) -> Element;
    (_[]):     (Rw_Vector, Int) -> Element;
    set:       (Rw_Vector, Int, Element) -> Void;
    (_[]:=):   (Rw_Vector, Int, Element) -> Void;

    to_vector:  Rw_Vector -> Vector;

    copy:       { from:  Rw_Vector, to:  Rw_Vector, di:  Int } -> Void;
    copy_vec:   { from:  Vector,    to:  Rw_Vector, di:  Int } -> Void;


    keyed_apply:    ((Int, Element) -> Void) -> Rw_Vector -> Void;
    apply:     (Element -> Void) -> Rw_Vector -> Void;
    modifyi:   ((Int, Element) -> Element) -> Rw_Vector -> Void;
    modify:    (Element -> Element) -> Rw_Vector -> Void;

    keyed_fold_left:  ((Int, Element, X) -> X) -> X -> Rw_Vector -> X;
    keyed_fold_right:  ((Int, Element, X) -> X) -> X -> Rw_Vector -> X;
    fold_left:   ((Element, X) -> X) -> X -> Rw_Vector -> X;
    fold_right:   ((Element, X) -> X) -> X -> Rw_Vector -> X;

    findi:    ((Int, Element) -> Bool) -> Rw_Vector -> Null_Or ((Int, Element));
    find:     (Element -> Bool) -> Rw_Vector -> Null_Or( Element );
    exists:   (Element -> Bool) -> Rw_Vector -> Bool;
    all:      (Element -> Bool) -> Rw_Vector -> Bool;
    collate:  ((Element, Element) -> Order) -> (Rw_Vector, Rw_Vector) -> Order;

  };


## COPYRIGHT (c) 1994 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext