Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Datumfluoj
Ĉenigi fluojn
La vera valoro de fluoj aperas, kiam vi havas plurajn etapojn. Ĉiu
==> transdonas sian rezulton al la sekva operacio, do
tuta ĉenstacio legiĝas de supre malsupren laŭ la ordo, en kiu la laboro
okazas:
(1..10)
==> grep(* %% 2)
==> map(* ** 2)
==> my @result;
say @result; # [4 16 36 64 100]Sekvu la datumojn malsupren laŭ la paĝo: komencu per
1..10, konservu la parajn nombrojn, kvadratigu ĉiun el ili
kaj kolektu la rezulton. La paraj nombroj estas
2, 4, 6, 8, 10, kaj iliaj kvadratoj estas
4, 16, 36, 64, 100.
Skribita kiel metodoĉeno, la sama ĉenstacio estas
(1..10).grep(* %% 2).map(* ** 2) — kaj tio legiĝas de
maldekstre dekstren same kiel la fluo. Metodoĉeno ne estas inversa; ĝi
plenumas siajn etapojn en ĝuste la sama ordo. La formo, kiu vere legiĝas
de interne eksteren, estas ingi la operaciojn kiel simplajn funkciojn,
map(* ** 2, grep(* %% 2, 1..10)), kie vi devas komenci ĉe
la plej interna voko kaj labori eksteren.
Fluo do ne estas maniero eskapi de interne-eksteren kodo — ĝi estas
alia skribmaniero de ĉenstacio, kiu legiĝas de maldekstre dekstren. Kion
ĝi aldonas, estas aranĝo: ĉiu etapo ==> povas sidi sur
sia propra linio, kaj la unu sola operatoro funkcias same por
metodstilaj kaj funkcistilaj paŝoj, kio tenas longan ĉenstacion facile
trarigardebla. Fluoj kaj metodoĉenoj finfine faras la saman laboron;
elektu tiun, kiu igas apartan transformon plej klara.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — La flua operatoro | Kvizo — Fluoj →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.