On Sun, 06 Nov 2016 20:25:50 -0800, lloyd.fo...@gmail.com wrote:
> 15:18 < llfourn_> m: say (Str andthen .uc orelse "foo") # more golfed
> 15:18 <+camelia> rakudo-moar 1c425f: OUTPUT«-> ;; $_ is raw {
> #`(Block|81391040) ... }␤»
> 15:23 < llfourn_>  m: say (Str andthen .uc orelse "foo")("wee")
> 15:23 <+camelia> rakudo-moar 1c425f: OUTPUT«foo␤»
> 
> unless I totally missed what these are meant to do a Block is not what
> should be returned from this expression.

The issue is due to `andthen` (and `notandthen`) actually returning Empty 
instead of the advertized "first undefined value" and since Empty is a Slip, it 
causes an issue with `orelse`.

While the fix is trivial, it causes fallout with `with` operator and right now 
we're waiting for TimToady to chime in on how things should be done. IRC 
conversation: https://irclog.perlgeek.de/perl6-dev/2016-11-09#i_13539174

Reply via email to