On Wed, Oct 3, 2018 at 7:21 PM ToddAndMargo <toddandma...@zoho.com
<mailto:toddandma...@zoho.com>> wrote:
>> On 04/10/2018 03:07, ToddAndMargo wrote:
>>> Hi All,
>>>
>>> In another thread, Timo wrote me:
>>>
>>> The "-->" part of the signature is optional. If there isn't
>>> one, it defaults to Mu, which is the type that everything
>>> conforms to, i.e. the sub or method that either has
"--> Mu"
>>> explicitly, or has it by leaving it out, may return
>>> absolutely whatever it wants.
>>>
>>> After all, the "-->" part is a constraint, and it gets
>>> validated at compile time every time a sub or method
>>> returns.
>>>
>>> I got to thinking, some routines do not return anything. Without
>>> the "-->" constraint, how am I to determine if something is
>>> being returned?
>>>
>>> Yours in confusion,
>>> -T
On 10/3/18 6:44 PM, Timo Paulssen wrote:
> I just spotted a grave mistake in my earlier mail:
>
> the --> constraints are validated at *run* time, not *compile* time;
> that's a very big difference, and an important one. Of course "every
> time a sub or method returns" doesn't make much sense if i had meant
> "compile time", but I felt i should really point it out before
causing
> too much confusion.
>
Hi Timo,
Thank you for the help over on the chat line with IN!
My confusion is not that it returns something (Mu).
My confusion is "what" it returns. And not all subs
return things, like "say" and "print".
I am presuming I am to pick the "what" from context
from the examples?
-T
On 10/3/18 7:53 PM, yary wrote:
> And not all subs return things, like "say" and "print".
say and print return true if the print succeeded, just like in perl 5.
say say "hi";
hi
True
Useful if printing to a filehandle, and the file you're writing to is on
a volume that fills up. Or a network drive that goes away. You do check
for those, right?
-y
Hi Yary,
Ya, my misunderstanding. Trey just taught me that. Home
brew ones too.
$ p6 'sub x($Str) {say $Str};say x("y");'
y
True
I think where I got mixed up was not realizing that the
things subs return can be ignored. And it is not like I
don't do that all the time either. I think I just
spaced as in Modula2, you get the finger shaken at you.
Now All I have to figure out is how tot tell "what" is being
returned. Am I suppose to pick that up from context?
-T