[1] Observe that there are two different operations being combined here: we are creating the function, and we are giving it the name square. It is possible, indeed important, to be able to separate these two notions—to create functions without naming them, and to give names to functions that have already been created. We will see how to do this in section 1.3.2.
[2] Throughout this book, we will describe the general syntax of expressions by using italic symbols—e.g., $\textit{name}$—to denote the slots in the expression to be filled in when such an expression is actually used.
[3] More generally, the body of the function can be a sequence of statements. In this case, the interpreter evaluates each statement in the sequence in turn until a return statement determines the value of the function application.
[4] This book assumes that all functions and constants of JavaScript's Math library are available as math_*.
1.1.4 Compound Functions