The `where` clause is already a smart-match, adding `~~` to it is not
only redundant, it can cause confusing action at a distance.
(By that I mean the right side of `where` is exactly the same as the
right side of `~~`)
You wouldn't write this:
* ~~ (* ~~ 1|2|4|8|16)
So don't write this
On 3/3/19 4:09 AM, Fernando Santagata wrote:
On Sun, Mar 3, 2019 at 11:41 AM ToddAndMargo via perl6-users
mailto:perl6-us...@perl.org>> wrote:
That way I can catch bad values at compile time and not have
to wait and see what it gets fed.
The snippet I showed you doesn't intercepts
On Sun, Mar 3, 2019 at 11:41 AM ToddAndMargo via perl6-users <
perl6-us...@perl.org> wrote:
> That way I can catch bad values at compile time and not have
> to wait and see what it gets fed.
>
The snippet I showed you doesn't intercepts wrong values at compile time,
but rather at run time.
--
> On Sun, Mar 3, 2019 at 11:09 AM ToddAndMargo via perl6-users
> mailto:perl6-us...@perl.org>> wrote:
>
> Hi All,
>
> I want to pass an integer to a sub. The only
> valid values of the integer are 1, 2, 4, 8, and 16.
>
> Other than using "if" to test their values, is
> there
Hi Todd,
is this what you're looking for?
sub mysub(Int $value where * ~~ 1|2|4|8|16)
{
say "Got $value"
}
mysub 2; # Got 2
mysub 3; # Constraint type check failed in binding to parameter '$value';
expected anonymous constraint to be met but got Int (3)
On Sun, Mar 3, 2019 at 11:09 AM
Hi All,
I want to pass an integer to a sub. The only
valid values of the integer are 1, 2, 4, 8, and 16.
Other than using "if" to test their values, is
there a way to state that an integer can only
have certain predefined values?
Many thanks,
-T
--
~~~
Having been