Corso di Raku / Fondamenti / Altro sui tipi / Tipi di dati posizionali / Exercises / Semafori
Soluzione: Semafori
L’idea della soluzione è di ‘ciclare l’indicizzazione’ dell’array con i quattro stati dei semafori:
my @lights = <yellow red yellow green>;Durante i primi secondi, il numero di secondi dall’inizio può essere
utilizzato direttamente come indice nell’array. Quando supera 3, puoi
riportarlo all’inizio dell’array con l’operatore modulo %.
La lunghezza dell’array è @lights.elems, ma quando viene
utilizzata come operando di %, non è necessario chiamare il
metodo elems, poiché il nome dell’array verrà convertito in
un numero, e quella conversione è progettata per restituire il numero di
elementi.
Codice
Ecco la soluzione:
my @lights = <yellow red yellow green>;
say @lights[51 % @lights];
say @lights[102 % @lights];
say @lights[305 % @lights];🦋 Trova il programma nel file traffic-lights.raku.
Output
Esegui il programma. Inoltre, prova altri valori nel programma.
$ raku exercises/positionals/traffic-lights.raku
green
yellow
red