Call by name parameter passing in Algol-60

An Algol-60 example of passing parameters by name. Later versions of the language switched to passing parameters by value. The syntax is not guaranteed to be correct - it's hard to come across an Algol-60 compiler these days...



begin 
   integer array A[1:3];
   integer i;
   integer procedure what(n);
      integer n;
      begin 
         for i:= 1 step 1 until 3 do n := i
      end;
   what(A[i])
end

Question 1: What is the result of the following code?
Question 2: Write a similar procedure to compute the sum of all elements in an array.


This is an example from CSci 4651 course.