diff options
| author | 2024-12-28 21:27:24 -0500 | |
|---|---|---|
| committer | 2024-12-28 21:27:24 -0500 | |
| commit | e9c8de093bac0697c41a9e01542163de1d6cbb1c (patch) | |
| tree | 8ec23ce11a7500bec4ebdc2890ed8284fc7b9ae5 /mcgoron.iterator.base.sld | |
| parent | refactor tests, add working code for list (diff) | |
refactor iterators to be closure objects
This makes iterators much more flexible while keeping their abstract
nature. New iterators can be made by a programmer with different
methods.
Existing iterator types cannot be programatically extended. This
would likely require implementation support: either CLOS-style
classes or a more limited single-dispatch interface system.
Diffstat (limited to 'mcgoron.iterator.base.sld')
| -rw-r--r-- | mcgoron.iterator.base.sld | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/mcgoron.iterator.base.sld b/mcgoron.iterator.base.sld index 44507ae..dff81e0 100644 --- a/mcgoron.iterator.base.sld +++ b/mcgoron.iterator.base.sld @@ -16,13 +16,13 @@ (define-library (mcgoron iterator base) (import (scheme base) (scheme case-lambda) (srfi 128) (mcgoron iterator exceptions)) - (export make-iterator iterator? + (export iterator? + define-iterator-implementation + define-invocation + iterator-closure iterator-capabilities iterator-type iterator-at-start? iterator-at-end? iterator-advance iterator-ref - iterator->index - iterator-get-private - iterator=? iterator<? iterator>? iterator<=? iterator>=? - iteratively-apply-predicate) + iterator->index) (include "mcgoron.iterator.base.scm")) |
