PreviousUpNext

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

## rw-vector-slice.api

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


stipulate
    package rwv =  rw_vector;                                                   # rw_vector             is from   src/lib/std/src/rw-vector.pkg
herein

    api Rw_Vector_Slice {
        #
        Slice(X);

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

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

        burst_slice:    Slice(X) -> (rwv::Rw_Vector(X), Int, Int);
        to_vector:    Slice(X) -> vector::Vector(X);

        copy:       { src:  Slice(X), dst:  rwv::Rw_Vector(X), di:  Int }  -> Void;
        copy_vec:   { src:  vector_slice::Slice(X), dst:  rwv::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;

        keyed_map_in_place:   ((Int, X) -> X) -> Slice(X) -> Void;
        map_in_place:      (X -> X) -> Slice(X) -> Void;

        keyed_fold_forward:    ((Int, X, Y) -> Y) -> Y -> Slice(X) -> Y;
        keyed_fold_backward:    ((Int, X, Y) -> Y) -> Y -> Slice(X) -> Y;
        fold_forward:     ((X, Y) -> Y) -> Y -> Slice(X) -> Y;
        fold_backward:     ((X, Y) -> Y) -> Y -> Slice(X) -> Y;

        keyed_find:     ((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;
        compare_sequences:   ((X, X) -> Order) -> (Slice(X), Slice(X)) -> Order;
    };
end;

## Copyright (c) 2003 by The Fellowship of SML/NJ
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext