Node:Review, Next:defun Exercises, Previous:save-excursion, Up:Writing Defuns
In the last few chapters we have introduced a fair number of functions and special forms. Here they are described in brief, along with a few similar functions that have not been mentioned yet.
(defun back-to-indentation () "Move point to first visible character on line." (interactive) (beginning-of-line 1) (skip-chars-forward " \t"))
Common code characters are:
See Interactive Codes, for a complete list of
letand give them an initial value, either
nilor a specified value; then evaluate the rest of the expressions in the body of the
letand return the value of the last one. Inside the body of the
let, the Lisp interpreter does not see the values of the variables of the same names that are bound outside of the
(let ((foo (buffer-name)) (bar (buffer-size))) (message "This buffer is %s and has %d characters." foo bar))
(message "We are %d characters into this buffer." (- (point) (save-excursion (goto-char (point-min)) (point))))
if special form is called a conditional. There are
other conditionals in Emacs Lisp, but
if is perhaps the most
(if (string-equal (number-to-string 21) (substring (emacs-version) 10 12)) (message "This is version 21 Emacs") (message "This is not version 21 Emacs"))
equaluses one meaning of the word `same' and
equalreturns true if the two objects have a similar structure and contents, such as two copies of the same book. On the other hand,
eq, returns true if both arguments are actually the same object.
<function tests whether its first argument is smaller than its second argument. A corresponding function,
>, tests whether the first argument is greater than the second. Likewise,
<=tests whether the first argument is less than or equal to the second and
>=tests whether the first argument is greater than or equal to the second. In all cases, both arguments must be numbers or markers (markers indicate positions in buffers).
string-lesspfunction tests whether its first argument is smaller than the second argument. A shorter, alternative name for the same function (a
The arguments to
string-lessp must be strings or symbols; the
ordering is lexicographic, so case is significant. The print names of
symbols are used instead of the symbols themselves.
An empty string,
"", a string with no characters in it, is
smaller than any string of characters.
string-equal provides the corresponding test for equality. Its
shorter, alternative name is
string=. There are no string test
functions that correspond to >,
%cto print the value of arguments that follow the string. The argument used by
%smust be a string or a symbol; the argument used by
%dmust be a number. The argument used by
%cmust be an ascii code number; it will be printed as the character with that ASCII code.
setqfunction sets the value of its first argument to the value of the second argument. The first argument is automatically quoted by
setq. It does the same for succeeding pairs of arguments. Another function,
set, takes only two arguments and evaluates both of them before setting the value returned by its first argument to the value returned by its second argument.
other-bufferas an argument and other than the current buffer).