David Kastrup writes: > Mark H Weaver writes: > >> I can take care of doing this myself, and will of course still credit >> you in whatever manner you prefer, but I've run into a legal problem: we >> don't currently have copyright papers for you on file. Are you willing >> to file copyright papers for GUILE? > > No problems with that. Standard request-assign? request-assign.future would be good, which assigns "PAST AND FUTURE CHANGES". Is that what you meant by "Standard request-assign"? > At any rate, here is what I would suggest to create: a function > min-length receiving a list of lists (possibly as separate arguments via > a rest argument). > > It will return the number of times one can do cdr on every of the given > arguments until at least one of them turns into a list end with nothing > turning into anything but a pair or a list end. I agree that these are reasonable semantics for validation by 'map' and 'for-each'. I went ahead and implemented it (attached below). For efficiency in the common case, I check for cycles in only one list at a time. If a cycle is found, the circular list is discarded and cycle detection begins on another list. Let me know if you see a way to improve it. However, this is not the procedure needed for 'drop-right', so we'll still need to add a lax variant of length+. Maybe 'improper-list-length+'? I guess that both of these new procedures should go in a new module: (srfi srfi-1 gnu). We've used this convention for other SRFI extensions, e.g. (srfi srfi-9 gnu). Regards, Mark