NOTE: Several of you indicated on the surveys that you would like more attempts for the PL-Detective. Starting with the previous assignment assignment, I've been giving you more attempts than before for the PL-Detective. Rather than using a straightforward formula (e.g., 2*minimum number of attempts), I'm selecting the number of attempts based on the difficulty of the question.
Let's consider the following abstract call F(A1, ... An). F is the procedure being called. While we are used to calling a procedures directly (e.g., print(...)), most languages, including MYSTERY allow complicated expressions for F. For example, if a is an array of procedures, one can do a[2](5) in MYSTERY to call the procedure at a[2] with argument 5. MYSTERY even allows a procedure to return a procedure. Thus, if a procedure, f, returns a procedure, then one could write f()(x). This calls the procedure returned by f with the argument x. Needless to say, most languages allow one to pass arbitrarily complicated arguments (i.e., Ai).
Use this link to submit programs. You should provide evidence that supports your argument. You will lose 5% of the points for this question for each additional executed PRINT.