29 lines
786 B
Text
29 lines
786 B
Text
define printTimesTables(max::integer) => {
|
|
local(result) = ``
|
|
local(padSize) = string(#max*#max)->size + 1
|
|
|
|
// Print header row
|
|
#result->append((' ' * #padSize) + '|')
|
|
loop(#max) => {
|
|
#result->append(loop_count->asString(-padding=#padSize))
|
|
}
|
|
#result->append("\n" + (`-` * #padSize) + '+' + (`-` * (#padSize * #max)))
|
|
|
|
with left in 1 to #max do {
|
|
// left column
|
|
#result->append("\n" + #left->asString(-padding=#padSize) + '|')
|
|
|
|
// Table results
|
|
with right in 1 to #max do {
|
|
#result->append(
|
|
#right < #left
|
|
? ' ' * #padSize
|
|
| (#left * #right)->asString(-padding=#padSize)
|
|
)
|
|
}
|
|
}
|
|
|
|
return #result
|
|
}
|
|
|
|
printTimesTables(12)
|