> a =: a + b
> instead of
> (for i=0; i<a.size(); ++i) a[i] += b[i];
Well, sure, most people prefer not to write code with syntax errors.
But, nitpicks aside, your post is mostly frequently-made commentary in favor of functional programming (both FP languages and functional style -- which, again, has nothing to do with avoiding line breaks or whitespace -- in other languages), but really has nothing to do with the characterization uphtread of the mass of minimally-whitespace, non-line-broken C code presented upthread as being a matter of "functional vs. imperative", which remains completely wrong. So its a complete nonsequitur to the post it "responds" to.
Not using whitespace, including line breaks, has nothing to do with functional style, and using it has nothing to do with imperative style. (If it did, your C++ example, minus the syntax error, would be just as "functional" as the J example.)
[1] For an example of the large whitespace for factoring-out, see the factoring out of J-sub-k on the top of p. 460 of http://titan.fsb.hr/~venovako/dist/tensor.pdf
Similarly, J programmers prefer to write
a =: a + b
instead of
(for i=0; i<a.size(); ++i) a[i] += b[i];
which obscures the idea quite a bit. Or saying
(# %: */) a
to calculate geometric mean of vector a and use that in next expression.