8.15
8 Unsafe for Clause Transforms
(require syntax/unsafe/for-transform) | package: base |
The syntax/unsafe/for-transform module provides a helper
function that gives access to the sequence transformers defined by
define-sequence-syntax. This is what the for forms use and
enables faster
sequence traversal
than what the sequence interface provides.
The output may use unsafe operations.
procedure
(expand-for-clause* orig-stx clause) → syntax?
orig-stx : syntax? clause : syntax?
(([(outer-id ...) outer-expr] ...) outer-check ([loop-id loop-expr] ...) pos-guard ([(inner-id ...) inner-expr] ...) inner-check pre-guard post-guard (loop-arg ...))
which can then be spliced into the appropriate iterations. See :do-in for more information.
The result may use unsafe operations.
The first argument orig-stx is used only for reporting syntax errors.
Added in version 8.10.0.3 of package base.
procedure
(expand-for-clause orig-stx clause) → syntax?
orig-stx : syntax? clause : syntax?
Like expand-for-clause*, but the result omits a
inner-check part:
(([(outer-id ...) outer-expr] ...) outer-check ([loop-id loop-expr] ...) pos-guard ([(inner-id ...) inner-expr] ...) pre-guard post-guard (loop-arg ...))
If a clause expands to a inner-check clauses that is not ignorable, expand-for-clause reports an error. An ignorable clause is (void) or a begin form wrapping ignorable clauses.