Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Doubly-linked list
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Anton Moscal <msk@m...>
Subject: Re: [Caml-list] Doubly-linked list
Hello, Oleg!
You wrote to "Diego Olivier Fernandez Pons"
<Diego-Olivier.FERNANDEZ-PONS@cicrp.jussieu.fr> on Tue, 13 Aug 2002
10:30:59 -0400:

 O> Will it include imperative doubly-linked list or are all data types
 O> going to
 O> be purely functional? It's hard for me to think of an efficient
 O> purely  functional doubly-linked list.

For example:

type 'a dll = 'a list (* before *) * 'a * 'a list (* next *)

let ins_after elem (bef, cur, aft) = (cur::bef, elem, aft)
let next = function (bef, cur, (cur'::aft)) -> Some ((cur::bef), cur', aft)
| _ -> None
let prev = function ((cur'::bef), cur, aft) -> Some (bef, cur', (cur::aft))
| _ -> None
...

Anton Moscal.
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners