So tack a .Bool at the end. You are coercing a bool to a bool by doing so and hopefully the optimizer is smart enough for people who like to be redundant.
;) On Sun, May 17, 2020 at 6:10 PM ToddAndMargo via perl6-users < perl6-us...@perl.org> wrote: > On 2020-05-17 14:43, ToddAndMargo via perl6-users wrote: > > Although > > > > "say 'yes' if 'h:/'.IO.d" > > > > is obscure to me and > > > > "say 'h:/'.IO.d.Bool" > > > > is very easy for me to understand. > > > Hi Peter, > > I think it would help if you knew how my > mind worked. > > `if` to me is a Boolean function. If this > expressions is true, do this, if not, do > something else. > > This is what happens to me when I see expressions > like > > "say 'yes' if 'h:/'.IO.d" > > if the expression (h:/.IO.d) is true, then > say the result of the expression test, not the > result from the expression. I have to figure > out what the results from the expression are > and why it is passing or failing the test. > > Two steps in my mind. Not that I can't figure > things like this out, I just don't like the effort, > when it can be avoided. The way I look at it, the > time it takes me to write five extra letters (.Bool) > will save me ten times that amount of time trying to > figure out what I did 5 days or 5 years from now. > Dr. Demming (Quality circles, Kaisen, etc.) makes > a very strong point of this > > And `if` can actually be very helpful at times: > if $x ~~ s/ "abc" /def/ {...;} > will tell you if the regex actually found "abc". > This I adore because I know is a test. Not > in the least bit obscure. > > .d is suppose to return a Boolen, but does not. > Some functions will convert the junk for you on > the fly. Raku is very friendly this way. Five extra > letters and I do not have to wonder who does what > to whom. > > Yes, I am a bit weird. > > Thank you for all the wonderful explanations! Very > much appreciated. > > -T > -- __________________ :(){ :|:& };: