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