Thanks, exiting stuff!
Here is what I found, when trying to parse it.
near the end of first section All functions return a Capture before the summary:
s{re-capures}{re-captures}xms
next sentence:
in mean one of \( $ foo )) the braces don't match.
In section Passing values out of the function, second code clock:
one additional sentence about PRE would be nice (a precondition probably).
In section Accepting values returned to you, second code block:
my (Str $y, Int $x) := ret-test'(4), # ($y,$x) gets (1,'Smith'), WRONG statement ends with a comma instead of a semicolon.
Something here is wrong with the first and third call
my (Str $y, Int $x) := ret-test'(5); # y=>'Smith', x=>1, so OK versus
my (Str $y, Int $x) := ret-test'(5); # ($x,$y) gets (1,'Smith'), WRONG
because the same invocation cannot be OK and WRONG at the same time, I think.
Also see second and forth invocation, the comments of both lines contradict each other. First y gets 1, then x gets 1
my (Str $y, Int $x) := ret-test'(4), # ($y,$x) gets (1,'Smith'), WRONG
versus
my (Str $y, Int $x) := ret-test'(4); # ($x,$y) gets (1,'Smith'), WRONG
The comments of the third and forth call reverse the order of x and y compared to the first two invocations.
| [reply] [d/l] [select] |
Many thanks. The last things you found were due to copy-paste of the lines without removing the PRIME from the function name. I intended to show that the function with the signature behaves differently than the same function body without the signature.
Thanks for the close reading. After a while all those commas and stuff just blur together for me.
—John
| [reply] |
You're welcome!
I saw your corrections, but there is one point left I think.
In section Accepting values returned to you in the first invocation using ret-test'(5) the result of ($x gets 1 and $y gets 'Smith') is OK (according to the comment),
my (Str $y, Int $x) := ret-test'(5); # y=>'Smith', x=>1, so OK
then in the third invocation the same result (as the comment suggests) is WRONG.
my (Str $y, Int $x) := ret-test(5); # ($x,$y) gets (1,'Smith'), WRONG
So i assume it is WRONG but the comment has $x and $y (or the list values) swapped. And probably the same for the forth invocation.
| [reply] [d/l] [select] |