Previous: Impl of Scope, Up: Variable Scoping [Contents][Index]
Binding a variable in one function and using it in another is a powerful technique, but if used without restraint, it can make programs hard to understand. There are two clean ways to use this technique:
You should write comments to inform other programmers that they can see all uses of the variable before them, and to advise them not to add uses elsewhere.
case-fold-search
is defined as “non-nil
means ignore case
when searching”; various search and replace functions refer to it
directly or through their subroutines, but do not bind or set it.
Then you can bind the variable in other programs, knowing reliably what the effect will be.
In either case, you should define the variable with defvar
.
This helps other people understand your program by telling them to look
for inter-function usage. It also avoids a warning from the byte
compiler. Choose the variable’s name to avoid name conflicts—don’t
use short names like x
.