On Thu Jun 24 05:18:07 2010, masak wrote:
> <masak> rakudo: say ~(1, 1, &[+] ... *)[^10]
> <p6eval> rakudo 11cbd4: OUTPUT«get_attr_str() not implemented in class
> 'Perl6MultiSub'␤  in 'infix:<...>' at line 1 [...]
> * masak submits rakuodbug
> <colomon> rakudo: say ~(1, 1, &[+] ... 50)
> <p6eval> rakudo 11cbd4: OUTPUT«get_attr_str() not implemented in class
> 'Perl6MultiSub'␤  in 'infix:<...>' at line 1 [...]
> <colomon> rakudo: say ~(1, 1, *+* ... 50)
> <p6eval> rakudo 11cbd4: OUTPUT«1 1 2 3 5 8 13 21 34␤»
> <moritz_> I guess it's related to &[+] referring to a multi
> <colomon> moritz_: yes
> <colomon> I'm not sure the &[+] can actually work here.
> <masak> why not?
> <colomon> ... needs to know how many arguments the closure takes.
> <masak> ah.
> <colomon> how many does &[+] take?
> <masak> two.
> <colomon> or zero
> <masak> zero!?
> <moritz_> for [+] to return 0
> <colomon> rakudo: say infix:<+>()
> <p6eval> rakudo 11cbd4: OUTPUT«0␤»
> <masak> huh.
> <TimToady> &[+] is specced to choose the 2-arg case
> <masak> that settles it. thanks.
> <colomon> there's the bug, then.  :)
> <TimToady> S03:4686

These are all happy now:

22:20 < [Coke]> rakudo: say ~(1, 1, &[+] ... *)[^10]
22:20 <+p6eval> rakudo 142c41: OUTPUT«1 1 2 3 5 8 13 21 34 55␤»
22:20 < [Coke]> rakudo: say ~(1, 1, &[+] ... 50)
22:21 <+p6eval> rakudo 142c41: OUTPUT«(timeout)»
22:21 < [Coke]> rakudo: say ~(1, 1, &[+] ... 55)
22:21 <+p6eval> rakudo 142c41: OUTPUT«1 1 2 3 5 8 13 21 34 55␤»
22:21 < [Coke]> rakudo: my $foo = &prefix:<!>;say $foo.signature;
22:21 <+p6eval> rakudo 142c41: OUTPUT«:(Any)␤»

Closable with tests.

-- 
Will "Coke" Coleda

Reply via email to