On Wed Dec 26 13:20:23 2012, moritz wrote:
> 22:07 < hoelzro> r: my $divisor = 2; say(* != $divisor && * %% $divisor);
> 22:07 <+p6eval> rakudo c8de2e: OUTPUT«===SORRY!===␤Error while compiling
> block: Error while compiling op call: Error while compiling block :
> Error while compiling op call: Error while compiling op if: if block
> expects an argument, but there's no immediate block to take it␤»
> 
> 22:15 < Ayiko> r: say ((* < 5 and * > 5)(4,6))
> 22:15 <+p6eval> rakudo c8de2e: OUTPUT«===SORRY!===␤Error while compiling
> block : Error while compiling op call: Error while compiling block :
> Error while compiling op call: Error while compiling op call: Error
> while compiling op if: if block expects an argument, but  there's no
> immediate block to take i…
> 
> I guess the mixture of whatever-priming and short-circuiting operators
> doesn't work out well.

These seems fine these days, at least on moar:

20:11 < [Coke]> r: say ((* < 5 and * > 5)(4,6))
20:11 <+camelia> rakudo-jvm 2f7ab3: ( no output )
20:11 <+camelia> ..rakudo-moar 2f7ab3: OUTPUT«Too many positionals passed;
                 expected 1 argument but got 2␤  in block <unit> at
                 /tmp/tmpfile:1␤␤»

Since the whatever code there has a single parameter, the *, we can't pass two 
in.

20:11 < [Coke]> r: my $divisor = 2; say(* != $divisor && * %% $divisor);
20:11 <+camelia> rakudo-{moar,jvm} 2f7ab3: OUTPUT«WhateverCode.new␤»

Closable (for moar at least) with tests.

-- 
Will "Coke" Coleda

Reply via email to