Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Funkcionālā programmēšana / Samazināšana / Procedūra reduce

Viktorīna — Samazināšana

Ko izdrukā šī programma?

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

reduce saloka sarakstu no kreisās uz labo, un bloka pirmais arguments vienmēr ir līdzšinējais rezultāts — šeit tas ir - kreisais operands. Tātad tiek aprēķināts ((10 - 1) - 2) - 3, tas ir, 9 - 2 - 3 = 4. Salokot otrādi, 10 - (1 - (2 - 3)), iznāktu 8, un saskaitot atņemšanas vietā — 16. Atšķirībā no + atņemšana ir atkarīga no secības, tāpēc abu argumentu lomas tiešām ir svarīgas.

Kursa navigācija

Procedūra reduce   |   Saskaitiet sarakstu