From: Tassilo Horn Date: Wed, 25 Dec 2013 09:12:24 +0000 (+0100) Subject: Rephrase lexical binding requirement sentence. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~198 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/ff1c842a9477dee39fa20f885d64288b4947a040 Rephrase lexical binding requirement sentence. * doc/lispref/control.texi (Pattern matching case statement): Rephrase lexical binding requirement: the example needs it, not `pcase' itself. --- diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 595102bb5e..738dd417fd 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2013-12-25 Tassilo Horn + + * control.texi (Pattern matching case statement): Rephrase lexical + binding requirement: the example needs it, not `pcase' itself. + 2013-12-25 Chong Yidong * eval.texi (Eval): Document the LEXICAL arg to eval. diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index a9e7236fc3..f5cdd3dc80 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -342,19 +342,20 @@ third elements and binds them to the variables @code{x} and @code{y}. @code{(pred numberp)} is a pattern that simply checks that @code{exp} is a number, and @code{_} is the catch-all pattern that matches anything. +Note that the the lambda being the result of the @code{fn} clause is a +closure (@pxref{Closures}), so the file defining @code{evaluate} must +have lexical binding enabled (@pxref{Using Lexical Binding}, for how +to enable it). + Here are some sample programs including their evaluation results: @example (evaluate '(add 1 2) nil) ;=> 3 (evaluate '(add x y) '((x . 1) (y . 2))) ;=> 3 (evaluate '(call (fn x (add 1 x)) 2) nil) ;=> 3 -(evaluate '(sub 1 2) nil) ;=> (error "Unknown expression (sub 1 2)") +(evaluate '(sub 1 2) nil) ;=> error @end example -Note that (parts of) @code{pcase} only work as expected with lexical -binding, so lisp files using @code{pcase} should have enable it -(@pxref{Using Lexical Binding}, for how to enable lexical binding). - There are two kinds of patterns involved in @code{pcase}, called @emph{U-patterns} and @emph{Q-patterns}. The @var{upattern} mentioned above are U-patterns and can take the following forms: