PreviousUpNext

15.3.544  src/lib/std/src/typelocked-vector.api

## typelocked-vector.api

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



# Generic interface for typelocked vector packages.



###                      "Thought is subversive and revolutionary, destructive and terrible.
###                       Thought is merciless to privilege, established institutions, and comfortable habit.
###                       Thought is great and swift and free."
###
###                                                       -- Bertrand Russell



api Typelocked_Vector {

    Vector;
    Element;

    max_len:  Int;

 #  vector creation functions 
    from_list:  List( Element ) -> Vector;
    tabulate:  (Int, (Int -> Element)) -> Vector;

    length:    Vector -> Int;
    cat:      List( Vector ) -> Vector;

    get:      (Vector, Int) -> Element;
    set:      (Vector, Int, Element) -> Vector;

    keyed_apply:    ((Int, Element) -> Void) -> Vector -> Void;
    apply:     (Element -> Void) -> Vector -> Void;
    keyed_map:    ((Int, Element) -> Element) -> Vector -> Vector;
    map:     (Element -> Element) -> Vector -> Vector;
    keyed_fold_left:  ((Int, Element, X) -> X) -> X -> Vector -> X;
    keyed_fold_right:  ((Int, Element, X) -> X) -> X -> Vector -> X;
    fold_left:   ((Element, X) -> X) -> X -> Vector -> X;
    fold_right:   ((Element, X) -> X) -> X -> Vector -> X;

    findi:   ((Int, Element) -> Bool) -> Vector ->  Null_Or ((Int, Element));
    find:    (Element -> Bool) -> Vector -> Null_Or( Element );
    exists:  (Element -> Bool) -> Vector -> Bool;
    all:     (Element -> Bool) -> Vector -> Bool;
    collate: ((Element, Element) -> Order) -> (Vector, 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