September 2017
Beginner
402 pages
9h 52m
English
The data flow of supplies contains two parts—the supplier that emits data and the tap that receives it. Perl 6's reactive programming model is a thread-safe implementation of the Observer design pattern.
Let us create our first on-demand supply using the supply keyword:
supply { emit($_) for 'a'..'e';}
The supply is here but it does not emit any data yet because there is no demand. You can easily see this if you add a print instruction to the loop:
supply { for 'a'..'e' { emit($_); say "Emitted $_"; }}sleep 2;
The program just silently quits after 2 seconds.
To make the supply generate data, we need to create a tap. The supply block returns a value of the Supply type, and you can call the tap method on it to pass the code ...