PreviousUpNext

15.3.359  src/lib/src/fifo.api

## fifo.api

# Compiled by:
#     src/lib/std/standard.lib

# See also:
#     src/lib/src/queue.api

# Implemented by:
#     src/lib/src/fifo.pkg

# Applicative fifos

api Fifo {

    Fifo(X);

    exception DEQUEUE;

    empty:     Fifo(X);
    is_empty:  Fifo(X) -> Bool;

    enqueue:  (Fifo(X), X) -> Fifo(X);
    dequeue:   Fifo(X) -> (Fifo(X), X);

    # Drop all queue elements for which
    # given predicate returns TRUE:
    #
    delete:   (Fifo(X), (X -> Bool)) -> Fifo(X);

    head:      Fifo(X) -> X;
    peek:      Fifo(X) -> Null_Or(X);

    length:    Fifo(X) -> Int;
    contents:  Fifo(X) -> List(X);

    apply:  (X -> Void) -> Fifo(X) -> Void;
    map:    (X -> Y) -> Fifo(X) -> Fifo(Y);

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

};              #  api Fifo


## COPYRIGHT (c) 1993 by AT&T Bell Laboratories.  See COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext