William James
10/2/2015 9:28:00 AM
Pascal Bourguignon wrote:
> (defun format-columns (column-width column-data)
> (format nil "~{~VA~}" (mapcar (function list) column-width column-data)))
>
> (list (format-columns '(10 4 6 8) '("aaaaaaa" "bb" "cccc" "dddddd"))
> (format-columns '(10 4 6 8) '("aaaa" "bbb" "cc" "dd")))
>
> ("aaaaaaa bb cccc dddddd "
> "aaaa bbb cc dd ")
Why do you need to specify the widths?
Just calculate them.
MatzLisp (Ruby):
def form *lists
widths = lists.transpose.map{|col| col.map(&:size).max}
puts lists.map{|row| row.zip(widths).map{|s,w| s.ljust(w)}.join " "}
end
form( ["aaaaaaa", "bb", "cccc", "dddddd"],
["aaaa", "bbb", "cc", "dd"],
["aaa", "bbbb", "ccc", "dddd"])
aaaaaaa bb cccc dddddd
aaaa bbb cc dd
aaa bbbb ccc dddd
--
Man is a social animal just like ants or bees or wolves. All have their living
space, which they defend to the very end. --- Kai Murros