On Mon, 09 Dec 2019, perl6-users-h...@perl.org wrote:
> Date: Sun, 8 Dec 2019 17:45:22 -0800
> From: ToddAndMargo via perl6-users <perl6-users@perl.org>
> To: perl6-users <perl6-users@perl.org>
> Subject: My keeper on "contains"
> 
> 8< ...
>
> Case insensitive contains:
>     $ p6 'if "2018 Jul 7".fc.contains( "jul".fc ) {say "Yes";}'
>     Yes
> 
>     $ p6 'if "2018 xJul 7".fc.contains( "jul".fc ) {say "Yes";}'
>     Yes
> 
>     p6 'if "2018 xul 7".fc.contains( "jul".fc ) {say "Yes";}'
>     <nothing>
> 
>     $ p6 'my $x="strong>2018.2.0; Coming Soon</strong>"; say so 
> $x.fc.contains("strong" & not "coming soon");'
>     False
> 

Careful about the last example, it is misleading. The `not` in
`"strong" & not "coming soon"` is not a junction constructor but
is evaluated eagerly, resulting in this junction:

  $ rk 'dd "strong" & not "coming soon"'
  all("strong", Bool::False)

because not("coming soon") is False at the moment where the &
operator assembles the all-junction. The result of passing this
to .contains will always be False, e.g.

  $ rk 'say so "strong".contains("strong" & not "weak")'
  False

What you meant was

  $ rk 'say so "strong".contains("strong" & none "weak")'
  True

which sadly doesn't sound as natural in English.

Regards,
Tobias

PS: Sorry for not replying in-thread. I just registered and didn't have
a proper copy of the mail at hand. (When I read about the "get" command
of the mailing list manager, I got my hopes up too high apparently as I
just received the mail canned in a digest, not suitable for replying.)

-- 
"There's an old saying: Don't change anything... ever!" -- Mr. Monk

Reply via email to