~ chicken-core (chicken-5) 9d6a21eee1c7d8655c738ab6541d22e870a766eb


commit 9d6a21eee1c7d8655c738ab6541d22e870a766eb
Author:     Peter Bex <peter.bex@xs4all.nl>
AuthorDate: Sat Jul 12 16:48:38 2014 +0200
Commit:     Peter Bex <peter.bex@xs4all.nl>
CommitDate: Sat Jul 12 16:48:38 2014 +0200

    Update manual to mention basic lambda list syntax for define-values, set!-values.
    
    Make the naming of the expressions consistent with receive, and point
    out the similarity of the forms.

diff --git a/manual/Non-standard macros and special forms b/manual/Non-standard macros and special forms
index 498592e4..9325124f 100644
--- a/manual/Non-standard macros and special forms	
+++ b/manual/Non-standard macros and special forms	
@@ -197,10 +197,12 @@ is the same as {{(letrec ((NAME (lambda (VARIABLE ...) BODY ...))) NAME)}}.
 
 ==== define-values
 
-<macro>(define-values (NAME ...) EXP)</macro>
+<macro>(define-values (NAME ...) VALUEEXP)</macro>
+<macro>(define-values (NAME1 ... NAMEn . NAMEn+1) VALUEEXP)</macro>
+<macro>(define-values NAME VALUEEXP)</macro>
 
 Defines several variables at once, with the result values of expression
-{{EXP}}.
+{{VALUEEXP}}, similar to {{set!-values}}.
 
 ==== fluid-let
 
@@ -212,17 +214,17 @@ This implements [[http://srfi.schemers.org/srfi-15/srfi-15.html|SRFI-15]].
 
 ==== let-values
 
-<macro>(let-values (((NAME ...) EXP) ...) BODY ...)</macro>
+<macro>(let-values (((NAME ...) VALUEEXP) ...) BODY ...)</macro>
 
-Binds multiple variables to the result values of {{EXP ...}}.
+Binds multiple variables to the result values of {{VALUEEXP ...}}.
 All variables are bound simultaneously.
 This implements [[http://srfi.schemers.org/srfi-11/srfi-11.html|SRFI-11]].
 
 ==== let*-values
 
-<macro>(let*-values (((NAME ...) EXP) ...) BODY ...)</macro>
+<macro>(let*-values (((NAME ...) VALUEEXP) ...) BODY ...)</macro>
 
-Binds multiple variables to the result values of {{EXP ...}}.
+Binds multiple variables to the result values of {{VALUEEXP ...}}.
 The variables are bound sequentially.
 This is also part of [[http://srfi.schemers.org/srfi-11/srfi-11.html|SRFI-11]].
 
@@ -234,9 +236,9 @@ This is also part of [[http://srfi.schemers.org/srfi-11/srfi-11.html|SRFI-11]].
 
 ==== letrec-values
 
-<macro>(letrec-values (((NAME ...) EXP) ...) BODY ...)</macro>
+<macro>(letrec-values (((NAME ...) VALUEEXP) ...) BODY ...)</macro>
 
-Binds the result values of {{EXP ...}} to multiple variables at once.
+Binds the result values of {{VALUEEXP ...}} to multiple variables at once.
 All variables are mutually recursive.
 
 <enscript highlight=scheme>
@@ -265,17 +267,20 @@ expression that evaluates to a parameter procedure.
 
 [[http://srfi.schemers.org/srfi-8/srfi-8.html|SRFI-8]].
 Syntactic sugar for {{call-with-values}}. Binds variables
-to the result values of {{VALUEEXP}} and evaluates {{BODY ...}}.
+to the result values of {{VALUEEXP}} and evaluates {{BODY ...}},
+similar {{define-values}} but lexically scoped.
 
 {{(receive VALUEEXP)}} is equivalent to {{(receive _ VALUEEXP _)}}.
 This shortened form is not described by SRFI-8.
 
 ==== set!-values
 
-<macro>(set!-values (NAME ...) EXP)</macro>
+<macro>(set!-values (NAME ...) VALUEEXP)</macro>
+<macro>(set!-values (NAME1 ... NAMEn . NAMEn+1) VALUEEXP)</macro>
+<macro>(set!-values NAME VALUEEXP)</macro>
 
-Assigns the result values of expression {{EXP}} to multiple
-variables.
+Assigns the result values of expression {{VALUEEXP}} to multiple
+variables, similar to {{define-values}}.
 
 === Substitution forms and macros
 
Trap