Quantas maneiras existem para descrever a sequência de Fibonacci no Perl 6?

Eu estive examinando as várias maneiras de construir listas preguiçosas no Perl 6 e gostaria de coletar todas as formas concisas de descrever a sequência de Fibonacci.

Vou começar com os três demasakDiário de:

my @fibs := (0, 1, -> $a, $b { $a + $b } ... *);

my @fibs := (0, 1, { $^a + $^b } ... *);  

my @fibs := (0, 1, *+* ... *);

Eu estava pensando que algo assim também funcionaria, mas acho que tenho a sintaxe errada:

my @fibs := (0, 1, (@fibs Z+ @fibs[1..*]));

Algo está ansioso (a fatia?) E faz com que Rakudo entre em um loop infinito. É uma tradução da definição de Haskell:

fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

Atualizar:

Parece que o problema com ozipWith exemplo é o@fibs[1..*] fatia. E setail é definido comosub tail (@x) {my $i = 1; {@x[$i++]}...*} então funciona corretamente. Eu estaria interessado em saber por que a fatia não é preguiçosa de alguém familiarizado com os internos de Rakudo.

Outro bom é:

my @fibs := (0, [\+] 1, @fibs);

questionAnswers(2)

yourAnswerToTheQuestion