Think about Loose Coupling | |
PerlMonks |
Re^10: Evaluation Order again. (clarity)by tye (Sage) |
on Jun 02, 2016 at 18:01 UTC ( [id://1164799]=note: print w/replies, xml ) | Need Help?? |
Writing clear documentation is an exercise in pedantry. Uh, no. So very much, no. Pedantry is too far along the spectrum to the point that it actual interferes with communication and reduces clarity. Clear documentation is usually helped by some precision in verbiage. Becoming pedantic leads to wasting time splitting hairs, making the documentation harder to follow. It's silly that so much fuss is being made about this since the point I was making is that proposed statement is still wrong when you fix the wording. Unfortunately, you are so committed to this particular pedantry that you believe this, but I went over what you wrote several times trying to find the non-pedantic point being obscured by your zeal for proper use of one word and I'm pretty sure it isn't there, else I'd not have responded as I did. For example, your sub { }->( X1() = X2() || X3() ); response doesn't demonstrate a flaw in the proposed explanation. It is again just laser focused on how "argument" is the wrong word. When (mildly) misusing "argument" (by using the common definition when talking about Perl), the order of evaluation of "arguments" does not apply in sub { }->( X1() = X2() || X3() ); because there is only one 'actual' argument (expression) in that call. Yes, of course, it isn't hard to realize that more than 1 or even 0 values might result as the list of argument values actually passed to the subroutine. It isn't hard to realize so being pedantic about the word choice more hurts than helps understanding. You aren't demonstrating the incorrectness of the concepts behind the statement. You are still picking the wrong concept to use in your interpretation of the statement simply because the word "argument" was used. You are demonstrating that your pedantry has prevented you from understanding the intended statement. If you were less pedantic about it, you might have succeeded in communicating (or perhaps even understanding yourself?) that making a statement about evaluation order of (actual) "arguments" should really be a statement about "lists (of expressions separated by commas)" or (less clearly but more precisely) about "the comma operator". But such a statement can be made clearer by bowing to the reality that the comma operator is still strongly conceptually tied to its origin as a way to separate subroutine arguments. So make a statement about lists and/or commas but add something like "including the list of expressions used as the arguments for a call to a subroutine". I got that point by reading what your wrote... eventually. But, boy, was it a struggle to pierce the pedantry to be able to get that point. The fact that order of evaluation applies to the list of actual argument expressions in a subroutine invocation is an important one. And it is helpful to explicitly point that out, and not to just imply it by noting that "these aren't subroutine arguments, they are just uses of the same comma operator". As you point it out, you can also point out the sameness, but even doing that pedantically makes it harder to understand. - tye
In Section
Meditations
|
|