Next: Regexp Search, Previous: Yanking, Up: Top [Contents][Index]
Emacs Lisp has two primary ways to cause an expression, or a series of
expressions, to be evaluated repeatedly: one uses a while
loop, and
the other uses recursion.
Repetition can be very valuable. For example, to move forward four sentences, you need only write a program that will move forward one sentence and then repeat the process four times. Since a computer does not get bored or tired, such repetitive action does not have the deleterious effects that excessive or the wrong kinds of repetition can have on humans.
People mostly write Emacs Lisp functions using while
loops and their
kin; but you can use recursion, which provides a very powerful way to think
about and then to solve problems12.
• while | Causing a stretch of code to repeat. | |
• dolist dotimes | ||
• Recursion | Causing a function to call itself. | |
• Looping exercise |
You can write recursive functions
to be frugal or wasteful of mental or computer resources; as it happens,
methods that people find easy—that are frugal of mental
resources—sometimes use considerable computer resources. Emacs was
designed to run on machines that we now consider limited and its default
settings are conservative. You may want to increase the values of
max-specpdl-size
and max-lisp-eval-depth
. In my .emacs
file, I set them to 15 and 30 times their default value.