content_image/768319.jpg
Be careful of applying recursive techniques indiscriminately. Although appearing "clever," the~ do not always produce the most computationally efficient solutiom. 

If a procedure p activates a procedure Q and Q also activates P, and neither is declared within the other, then either p or Q must be declared in aforward declaration (Section II.C). 

The predeclared procedures in Appendix A are provided in every implementation of Standard Pascal, Any implementation may feature additional predeclared procedures. Since they are, as all predeclared and predefined objects, assumed to have a scope surrounding the user program, no conflict arises from ;11 declaration redefining the same identifier within the program. 

Predeclared procedures may n<)t be passed as actual procedural parameters. 

## 11.B. Functions 

Functions are program parts (in the same sense as procedures) which compute a single ordinal, real, or pointer value for use in the evaluation of an expression. Afunction desigllator specifies the activation of a function and consists of the identifier denoting the function and a list of actual parameters. The parameters are variables, expressions, procedures, or functions and are substituted for the corresponding formal parameters. 

The function declaration has the·,ame form as the program, with the exception ofthefunction heading which has the form: 

<img src='content_image/768319.jpg'>

As in the case of procedures, the lahels in the label declaration part and all identifiers introduced in the constant definition part, the type definition part, the variable, procedUl'c, or function declaration parts are local to the function declaration, v. hich is called the scope of these objects. They are not known outsid,:' their scope. The values of local 

