Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio reactiva / react et whenever / Exercises / Duo whenever

Solutio: Duo whenever

Ecce solutio possibilis huius exercitationis.

Codex

my $deposits    = Supply.from-list(100, 50, 200);
my $withdrawals = Supply.from-list(30, 120);

my $balance = 0;

react {
    whenever $deposits    { $balance += $_ }
    whenever $withdrawals { $balance -= $_ }
}

say $balance;

🦋 Inveni codicem fontem in archivo two-whenevers.raku.

Exitus

200

Commentarii

  1. Duo bloci whenever duo supply nominata spectant et diverse respondent: depositiones adduntur, retractiones subtrahuntur. Unus blocus react, duo fluxus, duae reactiones distinctae — hoc est propositum habendi unum whenever pro fonte.

  2. Blocus react solum tunc finit cum utrumque supply perfectum est, itaque ratio ultima est antequam imprimatur: 100 + 50 + 200 - 30 - 120 200 dat. Quia additio et subtractio commutant, intertextura duorum fluxuum effectum non mutat.

  3. Hic utrumque supply valores suos statim tradit, unus fluxus post alterum. In vita vera eventus rationis argentariae per tempus diffusi adveniunt — depositio nunc, retractio hora post — et duo fluxus inter se texuntur, ut in demonstratione Duo horologia. Codex idem prorsus manet: blocus react illud corpus whenever currit quod ad unumquemque eventum dum advenit pertinet.

Duo whenever   |   await