diff options
| author | Artur Malabarba | 2014-12-18 18:32:56 -0200 |
|---|---|---|
| committer | Artur Malabarba | 2014-12-18 18:33:28 -0200 |
| commit | 17589518728e247e7574e9b61502c3ff5cf9dc67 (patch) | |
| tree | a018b05dff7d9418de4c7bc9f7bc92aaf18c8279 | |
| parent | f87eff571ab7ca477e4b8ccb68a2eb306426f11e (diff) | |
| download | emacs-17589518728e247e7574e9b61502c3ff5cf9dc67.tar.gz emacs-17589518728e247e7574e9b61502c3ff5cf9dc67.zip | |
lisp/let-alist.el (let-alist): Evaluate `alist' only once.
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/let-alist.el | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8978bde017d..9828b845368 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2014-12-18 Artur Malabarba <bruce.connor.am@gmail.com> | ||
| 2 | |||
| 3 | * let-alist.el (let-alist): Evaluate the `alist' argument only | ||
| 4 | once. | ||
| 5 | |||
| 1 | 2014-12-18 Sam Steingold <sds@gnu.org> | 6 | 2014-12-18 Sam Steingold <sds@gnu.org> |
| 2 | 7 | ||
| 3 | * emacs-lisp/package.el: Avoid compilation warning by declaring | 8 | * emacs-lisp/package.el: Avoid compilation warning by declaring |
diff --git a/lisp/let-alist.el b/lisp/let-alist.el index 2efa027c449..8f02404cbdf 100644 --- a/lisp/let-alist.el +++ b/lisp/let-alist.el | |||
| @@ -94,9 +94,11 @@ expands to | |||
| 94 | .body | 94 | .body |
| 95 | .site))" | 95 | .site))" |
| 96 | (declare (indent 1) (debug t)) | 96 | (declare (indent 1) (debug t)) |
| 97 | `(let ,(mapcar (lambda (x) `(,(car x) (cdr (assq ',(cdr x) ,alist)))) | 97 | (let ((var (gensym "let-alist"))) |
| 98 | (delete-dups (let-alist--deep-dot-search body))) | 98 | `(let ((,var ,alist) |
| 99 | ,@body)) | 99 | (let ,(mapcar (lambda (x) `(,(car x) (cdr (assq ',(cdr x) ,var)))) |
| 100 | (delete-dups (let-alist--deep-dot-search body))) | ||
| 101 | ,@body))))) | ||
| 100 | 102 | ||
| 101 | (provide 'let-alist) | 103 | (provide 'let-alist) |
| 102 | 104 | ||