[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Name and API conflicts, and some wording



Maybe these issues have been raised, though I don't find them
in a quick skimming of archive.

* string= conflicts with srfi-13's.  These two can be dispatched by
  examining types of the arguments, and it's nice if it is noted.

* string-contains? is confusingly similar name to srfi-13's string-contains
  which performs different function, so it may be worth noted.

* srfi-1 and srfi-13 consistently use "remove" for the procedures that
  take a predicate, and "delete" for the ones that take an actual element.
  I don't oppose to the different usage in srfi-44, but I think it's nice
  that the difference is mentioned.

* absence thunk in *-ref and *-get : it seems that there are two flocks
  in various Scheme implementations to specify the value of the "fallback"
  values; some takes a value to be returned when no match is found (e.g.
  Chicken, Gauche, STk), and some takes a thunk to be evaluated to
  produce a value to be returned (e.g. PLT).
  I think it is good to stick to one, even though it conflicts with
  existing code; thus I'd like the rationale of API is mentioned.

* "Size versus length" : the definition of srfi-44's size is clear enough,
  but the description of "length" is somewhat confusing; as it says
  "This differs from the concept of length in Scheme datastructures,
  which corresponds more or less directly to the amount of actual storage",
  which isn't really the case (e.g. a string may be represented in
  multibyte format or a tree of chunks, and in such case, string-length is
  a logical notion of number of elements in a string rather than something
  related to the amount of actual storage; indeed, Gauche uses string-size
  to obtain the actual amount of storage used by the string, which differs
  from the number of characters).   So I think it's better not to associate
  "length" and "storage" at all, but just to emphasize "size" is a well
  defined concept and not related to the storage.
  Something like the following, maybe?

     Some Scheme datastructures has the concept of length,
     which may or may not the same as the concept of size.  Particularly,
     the size of a collection is not directly correspond to the amount
     of physical storage it uses.   A collection may occupy more physical
     storage than required to contain its values or mappings.

--shiro