2 ms·
Cf http://www.jnthn.net/papers/2015-spw-concurrency.pdf http://www.jnthn.net/papers/2015-spw-concurrency.pdf
by cygx 11y ago
Cf http://www.jnthn.net/papers/2015-spw-concurrency.pdf http://www.jnthn.net/papers/2015-spw-concurrency.pdf
- raiph 11y agoFrom pages 56 and 57: > Perl 6 has an asynchronous looping construct called whenever ... runs whenever a value arrives ... can live in a ... react block (works like entering an event loop) my $code = supply { whenever IO::Notification.watch-path($src-dir) { emit .path if .path ~~ /<.pm .p6> $/; } } So now, whenever something in $src-dir changes and its path ends with '.pm' or '.p6' that path will be emitted -- which in this case means it'll be pushed to any construct pulling from $code. Such as: react { whenever $code -> $path { say "Code file $path changed!"; } }
- btown 11y agoThis is probably the most interesting link in this entire thread. The "react" keyword is just a channel subscription, and inside it has a pattern matcher. Channels are first-class citizens, and you're encouraged to chain channels rather than falling into callback hell. It's like Go and Ruby had a child. If anything piqued my interest in Perl 6, it was this.