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

Re: tail-recursive string-any string-every

This page is part of the web mail archives of SRFI 13 from before July 7th, 2015. The new archives for SRFI 13 contain all messages, not just those from before July 7th, 2015.



   The functions string-any and string-every are defined such that the
   last predicate application on the final element is a tail call.  Is
   there any point to this?  I.e. can we realiztically imagine an
   application that will really benefit?  I can imagine applications
   being *hurt* by this requirement:
   (1) This precludes string-any string-every being implemented in a
   low-level language that does not support tail calls, such as C.
   (2) If a Scheme implementation provides two modes:  One that is
   support proper tail calls and one that doesn't (because that is faster),
   it requires compiling string-any string-every using the slower
   compilation mode.

   Could we remove this requirement?  (I know it is late ...)

Too late, I think. I would have been willing to kick it around, but I'd like
to get some actual discussion going, and we can't do that at t-24h.

In any event, if it ain't tail recursive, it ain't Scheme. If you are
going to break the rules for the basic semantics, you shouldn't have
any compunctions about breaking this minor part of the SRFI spec!
    -Olin