Re: [Scheme-reports] Sequence to sequence conversion Alex Shinn (01 Jul 2012 20:40 UTC)
Re: [Scheme-reports] Sequence to sequence conversion Marc Feeley (02 Jul 2012 12:34 UTC)
Re: [Scheme-reports] Sequence to sequence conversion Ray Dillinger (02 Jul 2012 15:57 UTC)
Re: [Scheme-reports] Sequence to sequence conversion John Cowan (03 Jul 2012 07:57 UTC)

Re: [Scheme-reports] Sequence to sequence conversion Alex Shinn 01 Jul 2012 20:39 UTC

On Sun, Jul 1, 2012 at 10:19 PM, Marc Feeley <feeley@iro.umontreal.ca> wrote:
> The R5RS has the following sequence to sequence conversion procedures:
>
>    list->string, and string->list
>    list->vector, and vector->list
>
> The R7RS is adding bytevector sequences, but it does not add the conversion procedures:
>
>    list->bytevector, and bytevector->list
>
> What is the rationale for this inconsistency?
>
> Moreover, the R7RS is adding only the first set of these conversion procedures:
>
>    vector->string, and string->vector
>    bytevector->string, and string->bytevector  (not in R7RS)
>    vector->bytevector, and bytevector->vector  (not in R7RS)

Actually, we have the second, it's just named
utf8->string and string->utf8 to emphasize the
encoding used to convert to and from a bytevector.

> yet for consistency they should be added.  Why is the conversion between vectors and strings priviledged by the standard?
>
> Personnaly, I think these conversion procedures should not be added to the standard because for consistency, any sequence types added by an implementation of Scheme (or future standard) would require N^2 conversion procedures.  Only the conversions to and from lists should be specified, and a "sufficiently intelligent compiler" can handle compositions such as
>
>    (list->string (vector->list v))
>
> like the proposed (vector->string v), if performance is an issue.

Bytevectors are a special-purpose data-structure,
for which conversions from general containers are
not necessarily possible (although this is also true
of strings).

I agree we don't need all O(n^2) procedures.
Ticket #433 filed to consider the bytevector
to list (or vector) case.

--
Alex

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports