# New Ticket Created by "Carl Mäsak" # Please include the string: [perl #122653] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=122653 >
<masak> how do I make a custom op iffy? <TimToady> well, equiv should dup iffy-ness, I'd think, along with all the other attributes of an operator <TimToady> tighter and looser are of course more problematic <masak> should there maybe be an 'is iffy' trait? <jnthn> That'd make sense to me... <TimToady> or it could be intuited from the return type, possibly <TimToady> presumably something that returns Bool is naturally iffy <masak> all those things sound like frills on top of the mundane, reliable mechanism... <TimToady> yeah * masak submits 'is iffy' NYI ticket Here's something that works already: $ perl6 -e 'sub infix:<≃>($l, $r) { $l == $r }; say 4 ≃ 5' False The following doesn't. The above clog should be read as a discussion around that: $ perl6 -e 'sub infix:<≃>($l, $r) { $l == $r }; say 4 !≃ 5' ===SORRY!=== Error while compiling -e Cannot negate ≃ because it is not iffy enough [...] My suggestion is to simply use 'is iffy' for this which today doesn't work simply because it's Not Yet Implemented. As far as I can see, this code oughta work when it is: $ perl6 -e 'sub infix:<≃>($l, $r) is iffy { $l == $r }; say 4 !≃ 5' ===SORRY!=== Error while compiling -e Can't use unknown trait 'is iffy' in a sub+{precedence} declaration. [...] TimToady has two other suggestions which also make sense to me, but only in special cases. S03 doesn't mention 'iffy' at all. S99 does: ---- =head2 iffy Used of an operator that either returns a C<Bool> result, I<or something like it> (such as a match object). All the comparison operators are iffy, as are conditional operators like C<&&>, C<?^>, and C<or>. C<%%> is iffy, but C<%> isn't. The junctive operators are iffy. The reason that we care about iffy operators is that you can only append the C<!> metaoperator to an operator that's iffy. ---- The term originated in STD.pm6, and up until this ticket I'm aware of no effort or discussion to make it user-facing. I'm not tied to any one particular mechanism for exposing iffiness to userland, but I firmly believe that it should be exposed; otherwise built-in operators will have an advantage over user-defined ones, which feels un-Perlish.