/** This solves the Rosetta Code problem "Pascal's triangle",
https://rosettacode.org/wiki/Pascal%27s_triangle
This is different from some other solutions in that it attempts to
automatically center the triangle based on the size of the numbers in the
lowest row.
*/
pascal[rows] :=
{
widest = length[toString[binomial[rows-1, (rows-1) div 2]]]
for row = 0 to rows-1
{
line = repeat[" ", round[(rows-row)* (widest+1)/2]]
for col = 0 to row
line = line + padRight[binomial[row, col], widest+1, " "]
println[line]
}
}