diff options
| author | No author <no_author@ocaml.org> | 1995-06-15 16:08:54 +0000 |
|---|---|---|
| committer | No author <no_author@ocaml.org> | 1995-06-15 16:08:54 +0000 |
| commit | 77b1c8b89fd8940a63b17c41eb37161e5d159831 (patch) | |
| tree | 43dbfb3982d9166b717199cb8faa97bdce30add7 /stdlib/queue.ml | |
| parent | ba79d4bd1f01a70b892c69f6a5e6e86714a023d6 (diff) | |
| download | ocaml-unlabeled-1.2.2.tar.gz | |
This commit was manufactured by cvs2svn to create branchunlabeled-1.2.2
'unlabeled-1.2.2'.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/unlabeled-1.2.2@37 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/queue.ml')
| -rw-r--r-- | stdlib/queue.ml | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/stdlib/queue.ml b/stdlib/queue.ml deleted file mode 100644 index 977a26338c..0000000000 --- a/stdlib/queue.ml +++ /dev/null @@ -1,58 +0,0 @@ -exception Empty - -type 'a queue_cell = - Nil - | Cons of 'a * 'a queue_cell ref - -type 'a t = - { mutable head: 'a queue_cell; - mutable tail: 'a queue_cell } - -let new () = - { head = Nil; tail = Nil } - -let clear q = - q.head <- Nil; q.tail <- Nil - -let add x q = - match q.tail with - Nil -> (* if tail = Nil then head = Nil *) - let c = Cons(x, ref Nil) in - q.head <- c; q.tail <- c - | Cons(_, newtailref) -> - let c = Cons(x, ref Nil) in - newtailref := c; - q.tail <- c - -let peek q = - match q.head with - Nil -> - raise Empty - | Cons(x, _) -> - x - -let take q = - match q.head with - Nil -> - raise Empty - | Cons(x, rest) -> - q.head <- !rest; - begin match !rest with - Nil -> q.tail <- Nil - | _ -> () - end; - x - -let rec length_aux = function - Nil -> 0 - | Cons(_, rest) -> succ (length_aux !rest) - -let length q = length_aux q.head - -let rec iter_aux f = function - Nil -> - () - | Cons(x, rest) -> - f x; iter_aux f !rest - -let iter f q = iter_aux f q.head |
