diff options
| author | 2025-03-15 18:47:41 -0400 | |
|---|---|---|
| committer | 2025-03-15 18:47:41 -0400 | |
| commit | 2c7927945b1849f1567cc5fa875982e6ee58212f (patch) | |
| tree | deb919191ce4139784b0031a4bbe175e0a737217 /README.md | |
| parent | add bulk list operations for set-set operatoins (diff) | |
test bulk set generators
Diffstat (limited to '')
| -rw-r--r-- | README.md | 20 |
1 files changed, 3 insertions, 17 deletions
@@ -22,8 +22,9 @@ Benefits of using this library: * `(mcgoron weight-balanced-trees internal)`: low-level operations on tree nodes. Includes `join`, `split`, and binary set operations. -* `(mcgoron weight-balanced-trees srfi 113 set)`: The set operations from - [SRFI-113][5], with extra procedures. +* `(mcgoron weight-balanced-trees srfi 113 set)`: Exposes an interface like + [SRFI-113][5], but with extra procedures. This can be used to implement the + other SRFIs using disjoint container types. [5]: https://srfi.schemers.org/srfi-113/srfi-113.html @@ -32,21 +33,6 @@ Benefits of using this library: Tests of set operations are implemented in terms of the SRFI-1 list-set operations. -The implementation of the SRFI interfaces uses [generators][3] for -iteration whenever a function can terminate in the middle of a set (like -`set-every?`). Generators are usually lightweight, but are intrinsically -mutating. Some Scheme implementations, like CHICKEN, implement -write-barriers in their garbage collectors, which make mutation slower -(See ["Mutations"][4]). - -Alternative implementation strategies include: - -* escape continuations (`call/cc` might be slow, `call/ec` is not - standard, `guard` could be used to emulate escape continuations) -* direct recursion (would have to traverse the whole set before - terminating) -* sentinel-value return (uglier) - The linear update procedures are the same as the functional procedures. [3]: https://srfi.schemers.org/srfi-158/srfi-158.html |
