Task

Produce a formatted   12×12   multiplication table of the kind memorized by rote when in primary (or elementary) school.



Only print the top half triangle of products.




go => 
  N=12,
  make_table(N),
  nl.
 
%
% Make a table of size N
%
make_table(N) => 
  printf("     "),
  foreach(I in 1..N) printf("%4w", I) end,
  nl,
  println(['-' : _ in 1..(N+1)*4+1]),
  foreach(I in 1..N)
    printf("%2d | ", I),
    foreach(J in 1..N)
      if J>=I then
        printf("%4w", I*J)
      else
        printf("    ")
      end
    end,
    nl
  end,
  nl.