Raku kurss / Padziļināti / Vairāk par iebūvētajiem tipiem / Secības
Slinkas un bezgalīgas secības
Virknei nav obligāti jāaprēķina visas savas vērtības uzreiz. Raku virknes ir slinkas: katra vērtība tiek radīta tikai tad, kad tā patiešām vajadzīga. Tas ļauj aprakstīt virkni, kurai vispār nav gala.
Lai uzrakstītu bezgalīgu virkni, izmantojiet Inf kā
beigu punktu. Ielieciet virkni iekavās, jo ... saistās
vaļīgāk nekā =:
my $naturals = (1 ... Inf);Bez iekavām my $naturals = 1 ... Inf mainīgajam
piešķirtu tikai 1 un pēc tam būvētu virkni pašu par sevi —
un bezgalīgas virknes izrēķināšana bez rezultāta programmu iekārtu.
Pagaidām nekas nav aprēķināts. Virkne izdos vērtības tikai tad, kad
tās prasīsiet. Metode head paņem pirmās dažas:
say (1 ... Inf).head(5); # (1 2 3 4 5)Lai gan virkne ir bezgalīga, tiek ģenerēti tikai pirmie pieci skaitļi. Bez slinkuma programma, kas mēģinātu uzbūvēt visu bezgalīgo virkni, nekad nebeigtu darbu.
Galīgai virknei metode tail tā vietā paņem vērtības no
beigām:
say (1 ... 100).tail(3); # (98 99 100)Tieši slinkums ļauj nošķirt virknes aprakstu no lēmuma par to, cik daudz no tās izmantot.
Kursa navigācija
← Viktorīna —
Operators ... | Nepāra skaitļi
→
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.