I've just published draft #7 of SRFI 196. It was submitted by Wolfgang Corcoran-Mathe, co-author of the SRFI.
Here are Wolfgang's comments on the draft:
These commits specify and implement a new draft of SRFI 196. Many existing procedures now take multiple ranges, and several new forms have been added.
Here is the commit summary:
- redefinition of split-at
- changed to range-first and range-last; added vector->range
- Remove duplicate vector->range definition.
- Rename range-first/-last in tests.
- added -map, -filter, -remove that produce vectors and ranges
- Additional iteration procedures.
- Tests: Minor style changes.
- Import or define vector-unfold and use it in range->vector.
- Edit type checks.
- subrange: Assume (- end start) is >= 0.
- explain about ranges with vectors inside
- Add range-filter and range-remove.
- Folds take multiple ranges; switch argument order.
- range-count: multiple ranges.
- range-any, range-every: Accept multiple ranges.
- Type checks in fold utility procedures.
- Delete redundant type checks.
- range-count: Don't use case-lambda.
- Add missing type checks.
- Mapping procedures accept multiple ranges.
- range-fold-right: Fix proc application error.
- Add and use `minimum' utility procedure.
- range-for-each: Accept multiple ranges.
- range-index(-right): Accept multiple ranges.
- removed range-indexer
- Don't export range-indexer.
- Add filter-map procedures, but don't export yet.
- error to modify results
- Add range-append.
- Export filter-map procedures.
- modification of range->list result not an error
- Improve range-append implementation, add tests.
- Use raw constructor in range-append.
- editorial; range-append
- Add range=?.
- Tests: variadic case of range=?.
- range=?
- Simplify some tests by using range=?, range-append.
- added pred to range=?
- Tests for variadic cases of several procedures.
- Tests for filter-map procedures.
- Remove range-filter-map->vector.
- Tests for variadic cases of filter-map procedures.
- Fix typos and remove garbage characters.
- More detail for range=?.
- range=? takes one or more arguments.
- Expand specs for iterators taking multiple ranges.
- Specify range-filter-map and range-filter-map->list.
- range-index(-right): Document multiple-range semantics.
- Update implementation requirements.
- Remove range-{filter, remove}->vector.
- Add notations subsection to Specification.
- Fix typo.
- Fix errors reported by W3C HTML Validator.
- Publish seventh draft.
Here's the diff:
https://github.com/scheme-requests-for-implementation/srfi-196/compare/draft-6..draft-7
Regards,
SRFI Editor