I am posting this as an individual member of the Scheme
community.  I am not speaking for the R6RS editors, and
this message should not be confused with the editors'
eventual formal response.

Jason Oredorff wrote:

> I looked at a handful of Schemes and it certainly appears they all
> keep each string in a single buffer.  I could be wrong.  I doubt it.

The main reason is that, in the past, keeping the
characters of each string in a single contiguous array
was a workable design.  With the current draft R6RS,
the tradeoffs bring other designs into play.

> If you want to provide (say) regular expressions using an existing
> native library, it's crazy not to have your strings in a single buffer.

Some of the better external libraries do not keep all
characters of a string in a single contiguous array [1].
Non-contiguous representations would be more popular if
not for legacy problems in C.

> If your Scheme is written in Java or C#, it's impractical not to use
> the system string type.

Java and C# strings have no analogue of string-set!.
It is therefore impractical to use their string type
naively.

At Brandeis, way back in 1984, I was just about the
only person there who thought it would be better for
strings to be immutable.  That idea was treated with
contumely.  How times have changed.

Will

[1] http://www.and.org/vstr/comparison

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to