This is silly. If you really need the extra speed, then use a Scheme
implementation with shared substrings, or another language (such as C).
Not an option for a portable library. We've been through this.
> ms> However, I have a compromise idea. Instead of the optional START
> ms> and END parameters, allow using a list '(s start end) instead of
> ms> the string parameter.
>
>I'm not sure I understand how this is a win over the optional
>start/end parameters,
The advantage is that you can store the string with the indices as one
(conceptual) unit, thus making the program code easier to maintain and
less error-prone.
You are simply re-inventing a form of shared-text strings, but one that is
particularly inefficient and that has poor error-checking properties. This I
do not want to do.
Please don't destroy the nice high-level Scheme language with these
exaggerated low-level optimazion efforts.
Try this: just ignore those optional parameters and you'll have the
interface you want.
-Olin