PreviousUpNext

15.3.520  src/lib/std/src/rw-vector.api

## rw-vector.api

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



api Rw_Vector {

    Rw_Vector(X);
    Vector(X);

    max_len:    Int;

    make_rw_vector: (Int, X)          -> Rw_Vector(X);
    from_list:      List(X)         -> Rw_Vector(X);
    tabulate:       (Int, (Int -> X)) -> Rw_Vector(X);

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

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

    to_vector:  Rw_Vector(X) -> Vector(X);

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

    keyed_apply:     ((Int, X) -> Void) -> Rw_Vector(X) -> Void;
    apply:                  (X -> Void) -> Rw_Vector(X) -> Void;

    modifyi:  ((Int, X) -> X) -> Rw_Vector(X) -> Void;
    modify:          (X -> X) -> Rw_Vector(X) -> Void;

    keyed_fold_left:    ((Int, X, Y) -> Y) -> Y -> Rw_Vector(X) -> Y;
    keyed_fold_right:   ((Int, X, Y) -> Y) -> Y -> Rw_Vector(X) -> Y;

    fold_left:     ((X, Y) -> Y) -> Y -> Rw_Vector(X) -> Y;
    fold_right:    ((X, Y) -> Y) -> Y -> Rw_Vector(X) -> Y;

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


## COPYRIGHT (c) 1995 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