Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Redukto / La rutino reduce

Kvizo — Redukto

Kion presas la jena programo?

say (10, 1, 2, 3).reduce(* - *);
14
08
016
0-4

reduce faldas la liston de maldekstre dekstren, kaj la unua argumento de la bloko ĉiam estas la ĝisnuna rezulto — ĉi tie, la maldekstra operando de -. Do ĝi kalkulas ((10 - 1) - 2) - 3, tio estas 9 - 2 - 3 = 4. Faldi la alian direkton, 10 - (1 - (2 - 3)), donus 8, kaj adicii anstataŭ subtrahi donus 16. Malsame ol +, subtraho dependas de la ordo, do la roloj de la du argumentoj vere gravas.

Kursa navigado

La rutino reduce   |   Sumu liston