Just a Few Comments Jonathan Sobel 18 Nov 1999 20:15 UTC

Generally, I like the whole thing quite a lot.  I would love to have
it around, and I would accept it in its current form without much

I agree with all of Erik Hilsdale's comments, I believe.  In

* Be consistent about the "string-" prefix for names.

* Let me do the three-arg-string version; i.e., String = S x N x N,
  a tuple of the string-data and two natural numbers.  My own reasons
  for this have to do with using "extra argument" monads:

    T(A) = Y --> A x Y

  where I may want to use String (the tuple version) as the Y.

* [end start] versus [start end]: I definitely vote for keeping the
  same order as everywhere else.  I know there are reasons to reverse
  it, but I won't remember them while I'm programming.

* I vote liberal on the copying issue.  In fact, I go along with Erik
  and say we ought to be able to assume sharing unless a specific copy
  is requested.  I'd be willing to drop the multiple versions of the
  procedures with "/shared" or "/fresh" or whatever and do an explicit
  "string-copy" if I want something new.  If my compiler has already
  made a copy, it can optimize my request away.

* "for-each" means left-to-right.  What about "string-apply" for the
  thing that just applies the given procedure to all the characters,
  in no particular order and with no particular result?

* I vote for "string-empty?" instead of "string-null?".

* We have to be careful about the whole "words" thing, unless we are
  willing to start dealing with locales, internationalization, etc.