[Haskell] implementing pointers-based data structure
sebastian.sylvan at gmail.com
Wed Mar 15 11:23:04 EST 2006
On 3/15/06, Sebastian Sylvan <sebastian.sylvan at gmail.com> wrote:
> On 3/15/06, minh thu <noteed at gmail.com> wrote:
> > hi everybody,
> > i have to implement some data structure which is usually implemented
> > with pointers in imperative languages (can think of it as a double
> > linked list).
> > i'd like to know how i have to do that.
> > is there any standard way of converting pointer-based data structure
> > into an inductively-defined data type (like standard haskell list) ?
> > is-it possible ?
> > or would it be good to define the data structure in c and write a
> > haskell wrapper around the c code ?
> > thank you a lot, bye,
> > vo minh thu
> You can use references, IO, ST or STM.
> You can also use laziness (untested!):
> data DLink a = (DLink a) a (DLink a) | Nil
> test = d1
> where d1 = Nil 5 d2
> d2 = d1 6 Nil
Eh? I forgot the constructors in the data type (in all three places!) :-)
data DLink a = Node (DLink a) a (DLink a) | Nil
test = d1
where d1 = Node Nil 5 d2
d2 = Node d1 6 Nil
More information about the Haskell