[m-dev.] New datatype: rope
Peter Schachte
schachte at csse.unimelb.edu.au
Thu Nov 11 16:18:58 AEDT 2010
On 11/11/10 15:41, Julien Fischer wrote:
>
> On Thu, 11 Nov 2010, Paul Bone wrote:
>> I don't think typeclasses will give you that either.
>>
>> Perhaps typeclasses and existential types will.
Yup, good point.
> Something like this?
>
> :- type cord_node
> ---> some [T] unit_node(T) => seq(T)
> ; some [T] list_node(T, list(T)) => seq(T)
> ; branch_node(cord_node, cord_node).
No, what I meant was to allow a rope to be made of heterogeneous kinds of
sequences of homogeneous elements. Eg, a "string" made up of a patchwork of
Mercury strings, lists of characters, individual characters, slices of arrays
of characters. Ie, I still wanted the type to be cord(T). But now that I
think of it, I think this would require constructor classes.
> I would question how much you are going to want to mix different kinds
> of sequence in a single rope though.
Do you mean a heterogeneous sequence of elements? Probably only useful where
all elements are in some type class. But if you mean a sequence of different
types of sequences of a common element type, this would seem useful to me, and
I can't see why you wouldn't want that flexibility.
--
Peter Schachte Economists are like Aeolian harps, and the
University of Melbourne sounds that issue from them are determined by
schachte at unimelb.edu.au the winds that blow.
www.cs.mu.oz.au/~schachte/ -- Rebecca West
Phone: +61 3 8344 1338
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at csse.unimelb.edu.au
Administrative Queries: owner-mercury-developers at csse.unimelb.edu.au
Subscriptions: mercury-developers-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the developers
mailing list