Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación reactiva / Supplies en vivo y bajo demanda / Exercises / Dos conexiones
Solución: Dos conexiones
Aquí tienes una posible solución para la tarea.
Código
my $s = Supply.from-list(1, 2, 3);
my @doubled;
my @tripled;
$s.map(* * 2).tap(-> $v { @doubled.push($v) });
$s.map(* * 3).tap(-> $v { @tripled.push($v) });
say @doubled;
say @tripled;🦋 Puedes encontrar el código fuente en el archivo two-taps.raku.
Salida
[2 4 6]
[3 6 9]Comentarios
Supply.from-listes bajo demanda, así que reproduce su secuencia completa para cada enganche, de forma independiente.Eso permite que los dos enganches ejecuten tuberías distintas sobre la misma fuente: uno duplica, el otro triplica. Cada uno ve todo
1, 2, 3, así que los resultados son[2 4 6]y[3 6 9].