RFC: general sequences
Benjamin Franksen
benjamin.franksen at bessy.de
Mon May 23 16:22:38 EDT 2005
On Monday 23 May 2005 18:41, Bulat Ziganshin wrote:
> RP> On Mon, May 23, 2005 at 01:38:59PM +0200, Henning Thielemann
wrote:
> >> It would be great if we had a class for finite sequences with
> >> instances Data.List, Data.Array, Data.Sequence. Maybe the new
> >> identifiers (<|), (|>) and so on should be names of methods of a
> >> such a class instead of separate functions.
>
> RP> What would that buy us? I can't think of many useful functions
> that RP> would use that interface, what with (<|) lazy for lists and
> strict for the other two, and (|>>) cheap for sequences and expensive
> for the other two.
>
> at least, it will be great to have analogues of length, map, filter,
> partition and a number of other operations defined in classes and
> supported for variety of data structures. i think it's omission in
> H98 standard that this names belongs only to lists and not defined in
> some classes like (+) and (>)
A agree completely. Almost all of the functions in Data.Seq have the
same name and type signature (modulo the data type) and provide the
same functionality as the corresponding ones for lists (in the
Prelude). A type class Sequence to capture these common features would
be great. It would also mean we can import module Sequence unqualified.
A problem is that the names conflict with the ones from the Prelude, so
that this style can only be used when hiding all the list stuff from
Prelude.
Ben
More information about the Libraries
mailing list