[pdf] now builds, but there are some spacing issues I want to correct in the PDF, that will be introduced next. --- doc/ref/match.texi | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/doc/ref/match.texi b/doc/ref/match.texi index 567146a35..4f3dc86fc 100644 --- a/doc/ref/match.texi +++ b/doc/ref/match.texi @@ -248,7 +248,7 @@ The names @code{quote}, @code{quasiquote}, @code{unquote}, @code{or}, @code{not}, @code{set!}, @code{get!}, @code{...}, and @code{___} cannot be used as pattern variables. -Here is a more complex example: +Here is a more complex example using records and promises: @example (use-modules (srfi srfi-9)) @@ -361,11 +361,22 @@ bind the variables in sequence, with preceding match variables in scope. (match-let (((x y) (list 1 2))) (match-let (((a b) (list x 4))) (list a b x y))) -@result{} -(1 4 1 2) +@result{} (1 4 1 2) @end example @end deffn +@example +(define wrap '(((((unnest arbitrary nestings)))))) + +(let unwrap ((peel wrap)) + (match-let* ([([core ...]) peel] + [(wrapper ...) core]) + (if (> (length wrapper) 1) + wrapper + (unwrap wrapper)))) +@result{} (unnest arbitrary nestings) +@end example + @deffn {Scheme Syntax} match-letrec ((variable expression) @dots{}) body Similar to @code{match-let}, but analogously to @code{letrec}, match and bind the variables with all match variables in scope. -- 2.39.1