PreviousUpNext

15.3.519  src/lib/std/src/rw-vector-slice.api

## rw-vector-slice.api

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



api Rw_Vector_Slice {

    Slice(X);

    length:   Slice(X) -> Int;
    get:     (Slice(X), Int) -> X;
    set:     (Slice(X), Int, X) -> Void;

    make_full_slice:  rw_vector::Rw_Vector(X)                       -> Slice(X);
    make_slice:      (rw_vector::Rw_Vector(X), Int, Null_Or( Int )) -> Slice(X);
    make_subslice:   (Slice(X), Int, Null_Or( Int ))                -> Slice(X);

    base:         Slice(X) -> (rw_vector::Rw_Vector(X), Int, Int);
    to_vector:    Slice(X) -> vector::Vector(X);

    copy:      { src:  Slice(X), dst:  rw_vector::Rw_Vector(X),
                     di:  Int }
                   -> Void;
    copy_vec:   { src:  vector_slice::Slice(X), dst:  rw_vector::Rw_Vector(X),
                     di:  Int }
                   -> Void;

    is_empty:   Slice(X) -> Bool;
    get_item:   Slice(X) ->  Null_Or ((X, Slice(X)));

    keyed_apply:      ((Int, X) -> Void) -> Slice(X) -> Void;
    apply:       (X -> Void) -> Slice(X) -> Void;
    modifyi:   ((Int, X) -> X) -> Slice(X) -> Void;
    modify:    (X -> X) -> Slice(X) -> Void;
    keyed_fold_left:    ((Int, X, Y) -> Y) -> Y -> Slice(X) -> Y;
    keyed_fold_right:    ((Int, X, Y) -> Y) -> Y -> Slice(X) -> Y;
    fold_left:     ((X, Y) -> Y) -> Y -> Slice(X) -> Y;
    fold_right:     ((X, Y) -> Y) -> Y -> Slice(X) -> Y;

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


## Copyright (c) 2003 by The Fellowship of SML/NJ
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext