On Tue Apr 13 09:02:12 2010, masak wrote:
> <masak> rakudo: class G {}; subset A of Array where { all(|$_) ~~ G };
> say [G.new, G.new, G.new] ~~ A
> <p6eval> rakudo 3b5a79: OUTPUT«0␤»
> <masak> :(
> <masak> rakudo: say all(42) ~~ Int
> <p6eval> rakudo 3b5a79: OUTPUT«0␤»
> <masak> maybe junctional smartmatching simply isn't in place yet.

Ticket rejected. A smart-match against a type object does not
auto-thread, since smart-matching against a type object is how type
checking is done. If we didn't do that, then you could pass a junction
of things that were all Any into an "Any" parameter in a sub and that'd
break auto-threading, for example.

A neat way to write what you want is like where { @^x <<~~<< G } or some
such using an extending hyper-op.

Thanks,

Jonathan

Reply via email to