Warum kann ich tail
nicht das Ergebnis eines tail
? Ich kann head
für die Sequenz tail
returns (und andere Variationen) aufrufen, aber ein tail
für ein tail
funktioniert nicht (in 2017.10):
Dieser Punkt schlägt fehl:
%Vor% Aber ein list
drin zu werfen funktioniert:
Dies ist ein Fehler.
Die .count-only
Optimierungsmethode für List.iterator
berücksichtigte nicht, dass der Iterator bereits beim Aufruf der Methode (hier beim ersten .tail
Aufruf) teilweise verbraucht wurde, wie timotimo ++ in die Kommentare, behalten immer die ursprüngliche Länge zurück. Die argless .tail
tendierte dann diese Methode und traf den Bug.
Dies ist jetzt auf 2017.11-76-gf70e20b
Rakudo
Wenn ich das Iterator-Protokoll nicht missverstand, war derselbe Fehler in einigen anderen Iteratoren vorhanden Danke, dass du diesen Bienenstock gefunden hast!