Copyright (C) 2000-2012 |
GNU Info (emacs-lisp-intro.info)append-to-buffer bodyThe Body of `append-to-buffer' ------------------------------ The body of the `append-to-buffer' function begins with `let'. As we have seen before (Note: `let'.), the purpose of a `let' expression is to create and give initial values to one or more variables that will only be used within the body of the `let'. This means that such a variable will not be confused with any variable of the same name outside the `let' expression. We can see how the `let' expression fits into the function as a whole by showing a template for `append-to-buffer' with the `let' expression in outline: (defun append-to-buffer (buffer start end) "DOCUMENTATION..." (interactive "BAppend to buffer: \nr") (let ((VARIABLE VALUE)) BODY...) The `let' expression has three elements: 1. The symbol `let'; 2. A varlist containing, in this case, a single two-element list, `(VARIABLE VALUE)'; 3. The body of the `let' expression. In the `append-to-buffer' function, the varlist looks like this: (oldbuf (current-buffer)) In this part of the `let' expression, the one variable, `oldbuf', is bound to the value returned by the `(current-buffer)' expression. The variable, `oldbuf', is used to keep track of the buffer in which you are working and from which you will copy. The element or elements of a varlist are surrounded by a set of parentheses so the Lisp interpreter can distinguish the varlist from the body of the `let'. As a consequence, the two-element list within the varlist is surrounded by a circumscribing set of parentheses. The line looks like this: (let ((oldbuf (current-buffer))) ... ) The two parentheses before `oldbuf' might surprise you if you did not realize that the first parenthesis before `oldbuf' marks the boundary of the varlist and the second parenthesis marks the beginning of the two-element list, `(oldbuf (current-buffer))'. automatically generated by info2www version 1.2.2.9 |