[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 programs 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] We shall see in the next section that 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] The Source language used in this adaptation introduces names math_* for all functions and constants in JavaScript's Math library.
1.1.4 Functions