]> git.eshelyaron.com Git - emacs.git/commitdiff
Deprecate the ((lambda ...) ...) form.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 26 Apr 2012 03:06:36 +0000 (23:06 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 26 Apr 2012 03:06:36 +0000 (23:06 -0400)
* doc/lispref/functions.texi (Simple Lambda, Argument List):
* doc/lispref/eval.texi (Function Indirection): Avoid deprecated form.

doc/lispref/ChangeLog
doc/lispref/eval.texi
doc/lispref/functions.texi
etc/NEWS

index d65a8813fda46b4ac398317e1b6cf08c027b10ba..401b674f98b9daae4d71b1ba9948e0c34e1bea5c 100644 (file)
@@ -1,3 +1,8 @@
+2012-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * functions.texi (Simple Lambda, Argument List):
+       * eval.texi (Function Indirection): Avoid deprecated form.
+
 2012-04-26  Glenn Morris  <rgm@gnu.org>
 
        * book-spine.texi, elisp.texi, vol1.texi, vol2.texi:
index 5bb514451b8009410b8b18a2e1a0a0580a4eeae9..62de337a5e3f4d58221634fc174caf214987c90e 100644 (file)
@@ -305,6 +305,22 @@ function, not a symbol.
 Executing the function itself evaluates its body; this does involve
 symbol function indirection when calling @code{erste}.
 
+  This form is rarely used and is now deprecated.  Instead, you should write it
+as:
+
+@smallexample
+@group
+(funcall (lambda (arg) (erste arg))
+         '(1 2 3))
+@end group
+@end smallexample
+or just
+@smallexample
+@group
+(let ((arg '(1 2 3))) (erste arg))
+@end group
+@end smallexample
+
   The built-in function @code{indirect-function} provides an easy way to
 perform symbol function indirection explicitly.
 
index 9ee9455706609c2fd34301b0201a6e04df187f9d..24fe9ed5e68cc901c24e30c59958b421cc5ec8ba 100644 (file)
@@ -267,13 +267,12 @@ function is the value returned by the last element of the body.
 @end example
 
 @noindent
-We can call this function by writing it as the @sc{car} of an
-expression, like this:
+We can call this function by passing it to @code{funcall}, like this:
 
 @example
 @group
-((lambda (a b c) (+ a b c))
- 1 2 3)
+(funcall (lambda (a b c) (+ a b c))
        1 2 3)
 @end group
 @end example
 
@@ -288,8 +287,8 @@ this example:
 
 @example
 @group
-((lambda (a b c) (+ a b c))
- 1 (* 2 3) (- 5 4))
+(funcall (lambda (a b c) (+ a b c))
        1 (* 2 3) (- 5 4))
 @end group
 @end example
 
@@ -400,16 +399,16 @@ after a @code{&rest} argument.
   Here are some examples of argument lists and proper calls:
 
 @smallexample
-((lambda (n) (1+ n))                ; @r{One required:}
1)                                 ; @r{requires exactly one argument.}
+(funcall (lambda (n) (1+ n))        ; @r{One required:}
        1)                         ; @r{requires exactly one argument.}
      @result{} 2
-((lambda (n &optional n1)           ; @r{One required and one optional:}
-         (if n1 (+ n n1) (1+ n)))   ; @r{1 or 2 arguments.}
- 1 2)
+(funcall (lambda (n &optional n1)   ; @r{One required and one optional:}
+           (if n1 (+ n n1) (1+ n))) ; @r{1 or 2 arguments.}
        1 2)
      @result{} 3
-((lambda (n &rest ns)               ; @r{One required and one rest:}
-         (+ n (apply '+ ns)))       ; @r{1 or more arguments.}
- 1 2 3 4 5)
+(funcall (lambda (n &rest ns)       ; @r{One required and one rest:}
+           (+ n (apply '+ ns)))     ; @r{1 or more arguments.}
        1 2 3 4 5)
      @result{} 15
 @end smallexample
 
index 68a4d57eff2b9b82a37221c34166b698ff4ad436..e87bcaec0f07bdae3be51a10494bb887bae2be55 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1052,6 +1052,8 @@ So do `defcustom' and other forms that call `defvar' as a subroutine.
 *** New function `special-variable-p' to check whether a variable is
 declared as dynamically bound.
 
+*** The form ((lambda ...) ...) is deprecated.
+
 ** An Emacs Lisp testing tool is now included.
 Emacs Lisp developers can use this tool to write automated tests for
 their code.  See the ERT info manual for details.