Talk:Align columns
J solution
I haven't read the J solution in depth yet, but it appears more complex than may be necessary. For example, with 'LEFT CENTER RIGHT'=:i.2 we can solve the task thus:
(#~ 0 1 $~ #) (9!:17 CENTER #~ 2 [ 9!:7 ' '$~11) (]":) 4 :'<;._2&.(,&x)y'S:0 /'$';LF;text Given a text file of many lines, where fields within a line are delineated by a single 'dollar' character, write a that aligns each column of fields by ensuring that words in each column are separated by at least one Further, allow for each word in a column to be either left justified, right justified, or center justified within its
Replacing CENTER with LEFT or RIGHT to taste.
Now, of course, the justification selected applies to every word. If we want to be able to treat each word (or column) independently, there are other methods. Even for this more general specification, I'm still not convinced that the large explicit verb is required, but I'll have to review it in detail to confirm.
= I concur that your solution is adequate to the specified task. It should replace the one I posted. I wrote mine without knowing about 9!:y. Thank you for this more skillful solution, Dan. --TBH 22:58, 1 December 2008 (UTC)
Output Question
Given that the lines contain varying numbers of fields, when a justified line is output should the program
A) only output the justified fields that the line contains, or
B) output spaces for the columns when the line does not contain all the columns?