# New Ticket Created by  Zoffix Znet 
# Please include the string:  [perl #132184]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=132184 >


- Seq.skip mutates the invocant:
    $ ./perl6 -e 'my $s := (1, 2, 3).Seq; $ = $s.skip; say $s'
    (2 3)

- List.skip does not:
    $ ./perl6 -e 'my $s := (1, 2, 3);     $ = $s.skip; say $s'
    (1 2 3)

And the real pain point is that a cached Seq is basically a list.
Currently, .skip on a Seq crashes. I tried to fix[^1] the crash, but
the fixed version has these inconsistent semantics that `Seq.skip`
will either modify the invocant or not, depending on whether the Seq
is cached.

    $ ./perl6 -e 'm: my $s := (1, 2, 3).Seq; $s.cache; $ = $s.skip; say $s'
    (1 2 3)
    $ ./perl6 -e 'm: my $s := (1, 2, 3).Seq;           $ = $s.skip; say $s'
    (2 3)

I don't see .skip in 6.c tests, so I think we still have a chance to
improve it. The question's: how? Any ideas?


[1] https://gist.github.com/zoffixznet/98ee33398ac7979c0adc4a4a88696b85

Reply via email to