On Wed, 26 Aug 2020, Tobias Boege wrote: > Observe: > > > 1 ...^ 20 > (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19) > > > 1 ... ^20 # actually C«1 ... (0..19)» > (1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19) > > The documentation [1] states that the C«...» infix is list-associative > and while I have never seen an example of that (including in that docs > page), it would explain why it happily takes in your list (1) and then > your list (0 .. 19) and concatenates them into a sequence, without > applying any of the usual sequence operator magic.
And I must correct myself. The associativity has nothing to do with this. I don't know where my mind was when I wrote that. From the documtation, I would blame the slurpy argument **@ for that behavior of just taking in lists and effectively iterating them into a new Seq, and in Rakudo it is apparently this special candidate: # https://github.com/rakudo/rakudo/blob/e2855aa/src/core.c/operators.pm6#L129 multi sub infix:<...>(\a, Mu \b) { Seq.new(SEQUENCE(a, b)) } Best, Tobias