On 09/11/2018 03:09 AM, ToddAndMargo wrote:
multi method contains(Str:D: Cool:D $needle, Int(Cool:D) $pos)
Okay, I know that
Str is a string
Cool is an object that can be treated as both a string and a number
$needle is the second optional parameter
What is "D"?
$needle is optional, why is it not stated as "$needle?"
How is both Str:D: and Cool:D the first parameter?
Why does "Str:D:" have a colon on the end and "Cool:D" does not?
What is Int(Cool:D) ?
What is $pos ?
Where is it stated that it has a return a value?
Where is it state that the return value is a boolean?
Yours in confusion,
-T
First off, I band the heck out of "contains" all over my code.
I know how it works. What I don't know is how the documentation
got there.
Okay I am making progress.
"multi method contains" means that it is a "method" (.foo).
Perl 6 has "methods" `.foo` and subroutines `sub foo(...){...}`
"Str:D" means it reads a string Str.contains(...) and
that the string is mandatory (constrained).
Okay, foul!
Str:D: Cool:D $needle
why is there not a comma between "Str:D:" and "Cool:D"?
And what is with the extra ":". By chance is the extra ":"
a confusing way of using a comma for a separator?
"Cool:D $needle" means that sub string or number you are
looking for. And it is constrained. You must enter a value.
Foul again!
Int(Cool:D) $pos
Why "Int(Cool:D)"? Why is type Int being redefined
as type "Cool" (number or any type or a string).
$pos is the starting position to check for a match,
start at zero.
Foul!
$pos is optional. But there is a "D" in its definition
making it constrained and not optional.
And another foul!
There is no stating what the return value is. It
should be of single value of type Bool.
I am getting there. Thank you all for the help.
-T
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Computers are like air conditioners.
They malfunction when you open windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~