Queue
structure
signature QUEUE
structure Queue
: QUEUE
The Queue structure provides a simple implementation of mutable queues. The current implementation relies on the applicative queues defined in Fifo, and therefore has similar performance.
type 'a queue
exception Dequeue
val mkQueue : unit -> 'a queue
val clear : 'a queue -> unit
val isEmpty : 'a queue -> bool
val enqueue : ('a queue * 'a) -> unit
val dequeue : 'a queue -> 'a
val delete : ('a queue * ('a -> bool)) -> unit
val head : 'a queue -> 'a
val peek : 'a queue -> 'a option
val length : 'a queue -> int
val contents : 'a queue -> 'a list
val app : ('a -> unit) -> 'a queue -> unit
val map : ('a -> 'b) -> 'a queue -> 'b queue
val foldl : (('a * 'b) -> 'b) -> 'b -> 'a queue -> 'b
val foldr : (('a * 'b) -> 'b) -> 'b -> 'a queue -> 'b
type 'a queue
exception Dequeue
mkQueue ()
clear qu
isEmpty qu
enqueue (qu, a)
dequeue qu
delete (qu, f)
head qu
peek qu
length qu
contents qu
app f qu
List.app f (contents qu)
map f qu
let val newq = mkQueue () in app (fn v => enqueue(newq,f v)) qu; newq end
foldl f a qu
List.foldl f a (contents qu))
foldr f a qu
List.foldr f a (contents qu))
Fifo
Last Modified May 14, 1998
Comments to John Reppy
Copyright © 1998 Bell Labs, Lucent Technologies