PreviousUpNext

15.3.570  src/lib/std/src/vector.api

## vector.api

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



###                       "Against my will, in the course of my travels,
###                        the belief that everything worth knowing
###                        was known at Cambridge gradually wore off.
###                        In this respect my travels were very useful to me."
###
###                                                -- Bertrand Russell


# This api is implemented in:
#
#     src/lib/std/src/vector.pkg

api Vector {
    #
    eqtype Vector(X);

    maximum_vector_length:    Int;

    from_list:  List(X) -> Vector(X);
    from_fn:   (Int, (Int -> X)) -> Vector(X);

    length:     Vector(X) -> Int;

    get:       (Vector(X), Int) -> X; 
    (_[]):     (Vector(X), Int) -> X;                           # (_[])   enables   'vec[index]'           notation;

    set:       (Vector(X), Int, X) -> Vector(X);
    (_[]:=):   (Vector(X), Int, X) -> Vector(X);                #  (_[]:=) enables   'vec[index] := value'  notation;

    cat:        List( Vector(X) ) -> Vector(X);

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

    keyed_map:    ((Int, X) -> Y) -> Vector(X) -> Vector(Y);
    map:                 (X -> Y) -> Vector(X) -> Vector(Y);

    keyed_fold_forward:   ((Int, X, Y) -> Y) -> Y -> Vector(X) -> Y;
    keyed_fold_backward:  ((Int, X, Y) -> Y) -> Y -> Vector(X) -> Y;

    fold_forward:            ((X, Y) -> Y) -> Y -> Vector(X) -> Y;
    fold_backward:           ((X, Y) -> Y) -> Y -> Vector(X) -> Y;

    keyed_find:    ((Int, X) -> Bool) -> Vector(X) -> Null_Or( (Int, X) );
    find:     (X -> Bool) -> Vector(X) -> Null_Or(X);

    exists:   (X -> Bool) -> Vector(X) -> Bool;
    all:      (X -> Bool) -> Vector(X) -> Bool;

    compare_sequences:  ((X, X) -> Order) -> (Vector(X), Vector(X)) -> Order;
};


## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext