chickadee » fmt » tabular

tabular <column> ...procedure

Equivalent to columnar except that each column is padded at least to the minimum width required on any of its lines. Thus

(fmt #t (tabular "|" (dsp "a\nbc\ndef\n") "|" (dsp "123\n45\n6\n") "|"))

outputs

|a  |123|
|bc |45 |
|def|6  |

This makes it easier to generate tables without knowing widths in advance. However, because it requires generating the entire output in advance to determine the correct column widths, tabular cannot format a table larger than would fit in memory.