Re: [Scheme-reports] fresh empty strings Ray Dillinger (24 Jan 2012 16:53 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (24 Jan 2012 19:05 UTC)
Re: [Scheme-reports] fresh empty strings Per Bothner (24 Jan 2012 19:25 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (24 Jan 2012 20:26 UTC)
Re: [Scheme-reports] fresh empty strings Per Bothner (24 Jan 2012 20:46 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (24 Jan 2012 21:20 UTC)
Re: [Scheme-reports] fresh empty strings Alex Shinn (25 Jan 2012 00:26 UTC)
Re: [Scheme-reports] fresh empty strings Per Bothner (25 Jan 2012 01:09 UTC)
Re: [Scheme-reports] fresh empty strings Alex Shinn (25 Jan 2012 02:08 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (25 Jan 2012 02:31 UTC)
Re: [Scheme-reports] fresh empty strings Alex Shinn (25 Jan 2012 02:35 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (25 Jan 2012 02:44 UTC)
Re: [Scheme-reports] fresh empty strings Alex Shinn (25 Jan 2012 03:26 UTC)
Re: [Scheme-reports] fresh empty strings Per Bothner (25 Jan 2012 03:43 UTC)
Re: [Scheme-reports] fresh empty strings Alex Shinn (25 Jan 2012 12:58 UTC)
Re: [Scheme-reports] fresh empty strings Per Bothner (25 Jan 2012 19:59 UTC)
Re: [Scheme-reports] fresh empty strings Alex Shinn (25 Jan 2012 23:49 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (25 Jan 2012 21:00 UTC)
Re: [Scheme-reports] fresh empty strings Ray Dillinger (25 Jan 2012 18:57 UTC)
Re: [Scheme-reports] fresh empty strings John Cowan (25 Jan 2012 01:38 UTC)

Re: [Scheme-reports] fresh empty strings Per Bothner 25 Jan 2012 19:57 UTC

On 01/25/2012 04:57 AM, Alex Shinn wrote:
> Oh, by all means use a gap buffer (or whatever you want)
> for the reference implementation!  But I still fail to see why
> that has to be exposed in the API... or even _can_ be in
> most cases.

I don't I've suggested "exposing" the implementation in the API.

> Perhaps you're just referring to the fact that there will
> be an implicit cursor,

No, that's not a factor.

My point is simple:
(1) Scheme has mutable fixed-length strings.  The "implied"
implementation is a simple array,though that doesn't mean
the implementation is "exposed".
(2) Mutable fixed-length strings don't really make sense
in the Unicode world.
(3) A conservative extension to the Scheme string API
would be to support variable-length strings, with
append/insert/delete/replace operations.
(4) Buffer-gap is a reasonable implementation of (3);
if works well as a conservative extension of the
traditional simple array in (1).
(5) Buffer-gap obviously has some performance problems:
Substring operations and copying come to mind.  But it shares
those with the simple array-based implementation implied by (1).
(6) Neither the traditional Scheme string API or one enhanced
to variable-length strings *preclude* a more sophisticated
string implementation, but such an implementation may be
overkill for the default string implementation
of a general-purpose Scheme implementation.

>but there are a number of data
> structures that make the same assumption.  A good
> survey is here:
>
> http://www.cs.unm.edu/~crowley/papers/sds/sds.html

Thanks - I'll read it.

Do you have a reference that actually includes the figures?
--
	--Per Bothner
per@bothner.com   http://per.bothner.com/

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