Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Maldiligentaj kaj senfinaj sekvencoj
La sekvenca operatoro
La sekvenca operatoro ... konstruas liston el komenca
ŝablono ĝis fina valoro. Donu al ĝi la unuajn kelkajn elementojn kaj la
finpunkton, kaj ĝi eltrovas, kiel la serio daŭras:
say (2, 4 ... 10); # (2 4 6 8 10)El 2, 4 ĝi konkludas «aldonu du ĉiufoje» kaj daŭrigas
ĝis ĝi atingas 10. La paŝo povas esti ankaŭ malsupren:
say (10, 8 ... 2); # (10 8 6 4 2)Se la elementoj kreskas per multipliko anstataŭ per adicio, la operatoro rimarkas ankaŭ tion:
say (1, 2, 4 ... 64); # (1 2 4 8 16 32 64)Ĉi tie ĉiu termo estas la duoblo de la antaŭa, do la sekvenco estas geometria.
Kiam la regulo estas pli kompleksa ol la operatoro povas diveni, vi povas provizi ĝin eksplicite kiel fermaĵon de la antaŭaj elementoj. Ekzemple, eksplicita regulo «aldonu la paŝon»:
say (1, * + 2 ... 9); # (1 3 5 7 9)La bloko * + 2 diras, kiel akiri la sekvan elementon el
la kuranta. Per tio ... povas esprimi ajnan sekvencon, kiun
vi povas priskribi per regulo.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Maldiligentaj kaj senfinaj sekvencoj | Kvizo — La sekvenca operatoro →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.