On Mar 10, 1:27 pm, dpb <n...@non.net> wrote: >On 3/10/2013 12:04 PM, Paul wrote: >> C-style comments are great! You don't have to comment everything >> to the right of the comment character. You can comment out a >> snippet of code in the middle of a line, and keep the rest of the >> code to the right of it. > > OTOH, you have to close the opening comment character or it keeps on > going..."there is no free lunch"
There only no free lunch if you choose one commenting style or the other. C++ allows both.
>> I (and I suspect others) spread complex statements and expressions >> over several lines, using deeper levels of indentation as cognitive >> cues to show which parts of the code bind together more tightly due >> to higher precedence. You can't comment out a snippet of code in >> middle of those lines. If you want to experimentally try a number >> of variations of the code, you have to duplicate the whole chunk of >> code > > Well, no, you only need duplicate the line which contains the > snippet you're trying to experiment is at least one alternative.
If they are different statements, yes, but I'm talk specifically about spreading a complex statement or expression over several physical lines so that you can use the indentation levels. For example, if you're experimenting with different forms of a symbolic mathematical statement, the form of the right hand side might change a lot, so you want to keep the corresponding matlab expression in a form that is easily manipulated and easy to detect manual errors. You need the cognitive assistance of indentation levels:
function resid = myfunc(llt,u) resid = ... log( ... 1 - ... ( 1 - exp(-exp(llt)) ... ) ... ./ exp(llt) ... ) ... - log(u) ; end % function
If you use Matlab's comment character to try commenting the one line:
% ./ exp(llt) ...
you get an error message on that line. It would be nice to be able to close the comment. Using C-style commenting, it might look like:
/* ./ exp(llt) ... */
Like I said, replicating the whole chunk of code just to be able to hack one line (while still retaining the original) creates a whole valley of experimental code, disrupting the continuity in reading the rest of the code.