[Haskell] implementing pointers-based data structure
Sebastian Sylvan
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
/S
--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862
More information about the Haskell
mailing list