Here is the problematic code from Casey's original posting:
The reason it is recursive is that the bracketed reference sets up a cascade
which is used when the format is applied, not when it is defined. Consider a
construct which is allowed:
Range/label pairs from F3F are *not* transcribed to F2F by PROC FORMAT.
Rather, F3F is stored with just the three lines shown. Later, if it is
invoked as with
put var f2f.;
and if VAR has a value of say 4, SAS will successively consult F2F and F3F
to find the correct label.
Here's sort of an analogy. The following code works:
data a; run;
data a; set a; run;
It (like var=var/100;) is not recursive. But
data b / view=b; run;
data b / view=b; set b; run;
is recursive and generates the message "ERROR: UPDATE views are not
supported." in the log.
On Fri, 25 Jan 2002 01:42:00 -0500, Casey Pierce <casey@SDAC.HARVARD.EDU>
>Thanks to all those who helped with the format problem.
>I didn't think that SAS would consider this to be any
>more recursive than something like var=(var/100) in
>a data step, but that doesn't seem to be the case.
>I'll stick with the absolutely correct solution given
>by Ian. Thanks again everyone.