Node:Block structure, Next:, Previous:Visibility, Up:Declarations



Block structure

A declaration (i.e. a form like :identifier) is owned with smallest block containing it. The declaration is visible ("in scope") inside the entire block (unless it is overridden by another declararation inside a smaller block).

Blocks are: (incomplete list - may change slightly):

Example: The expression [:x x] will match a two-element sequence if and only if the two elements match. Thus [:x x]=[3 3] succeeds, but [:x x]=[3 4] fails. These expressions also declare x in the current (surrounding) scope, because [:x x] is not a block. This may be undesirable; we would like to limit the scope of the x. Just ([:x x]) will not prevent the unwanted declaration, but (;[:x x]) will do it.