Skip to content

Commit a8f36ce

Browse files
authored
Merge pull request mouredev#4503 from edalmava/raku
#1 - Raku
2 parents c68a570 + f19eb00 commit a8f36ce

File tree

1 file changed

+132
-0
lines changed
  • Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/raku

1 file changed

+132
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Operador de asignación =
2+
my ($name, $age) = 'Edalmava', 30;
3+
4+
say("Mi nombre es $name y tengo $age");
5+
6+
# Operador defined-o // para obtener un valor alternativo si una variable aún no está establecida
7+
my $a = 'alpha';
8+
say $a // 'gamma'; # Imprime alpha
9+
10+
my $b;
11+
say $b // 'delta'; # Imprime delta
12+
13+
# if - El código se ejecuta solo si se cumple una condición, por ej., una expresión se evalúa como True
14+
# Si la condición no se cumple, podemos especificar bloques alternativos de ejecución utilizando:
15+
# - else
16+
# - elsif
17+
my $número-de-asientos = 9;
18+
19+
if $número-de-asientos <= 5 {
20+
say 'Soy un sedan'
21+
} elsif $número-de-asientos <= 7 {
22+
say 'Tengo 6 o 7 asientos'
23+
} else {
24+
say 'Soy un microbus'
25+
}
26+
27+
#`(
28+
unless - La negación de if es unless.
29+
La negación en Raku se realiza con ! o con not.
30+
31+
unless (condición) se utiliza en lugar de if not (condición).
32+
33+
unless no puede utilizar la claúsula else.
34+
)
35+
36+
my $limpiar-zapatos = False;
37+
38+
unless $limpiar-zapatos {
39+
say 'Limpia tus zapatos'
40+
}
41+
42+
# for - for itera sobre una serie de valores.
43+
my @array = 1,2,3;
44+
45+
for @array -> $array-item {
46+
say $array-item * 100
47+
}
48+
49+
# Para iterar sobre rangos
50+
51+
for 1..5 -> $n {
52+
say $n;
53+
}
54+
55+
# Para cuerpo de bucle cortos se puede usar la forma posfija de for
56+
.say for 1..5;
57+
58+
# given - En Raku given viene a ser switch en otros lenguajes
59+
my $var = 42;
60+
61+
given $var {
62+
when 0..50 { say 'Menos o igual a 50' }
63+
when Int { say "es un Entero" }
64+
when 42 { say 42 }
65+
default { say "¿ejem?" }
66+
}
67+
68+
# loop es otra forma de escribir un for.
69+
# Actualmente loop viene a ser el for utilizado en la familia de lenguajes de C.
70+
loop (my $i = 0; $i < 5; $i++) {
71+
say "El número actual es $i"
72+
}
73+
74+
# while - se repite mientras la condición sea verdadera
75+
my $x = 0;
76+
while $x <= 10 {
77+
$x = prompt 'Introduce un número, que no sea mayor que 10: ';
78+
say "Has introducido $x.";
79+
}
80+
say "$x es mayor que 10.";
81+
82+
# until - se repite hasta que la condición se haga verdadera
83+
$x = 0;
84+
until $x > 10 {
85+
$x = prompt 'Introduce un número que no sea mayor que 10: ';
86+
say "Has introducido $x.";
87+
}
88+
say "$x es mayor que 10.";
89+
90+
# repeat - el bloque repeat siempre se ejecuta al menos una vez.
91+
$x = 100;
92+
repeat {
93+
$x = prompt 'Enter a number: ';
94+
say "You entered $x.";
95+
} while $x <= 10; # Usando while para la condición
96+
say "$x is bigger than 10.";
97+
98+
$x = 0;
99+
repeat {
100+
$x = prompt 'Enter a number: ';
101+
say "You entered $x.";
102+
} until $x > 10; # Usando until para la condición
103+
say "$x is bigger than 10.";
104+
105+
#`(
106+
RETO EXTRA
107+
)
108+
109+
say '';
110+
say '**************';
111+
say '*****RETO EXTRA*****';
112+
say '**************';
113+
say '';
114+
115+
say "Usando for con rangos";
116+
117+
for 10 .. 55 -> $i {
118+
if $i %% 2 && $i != 16 && !($i %% 3) {
119+
say $i
120+
}
121+
}
122+
123+
say "Usando loop";
124+
125+
loop ($i = 10; $i <= 55; $i++) {
126+
if $i %% 2 && $i != 16 && !($i %% 3) {
127+
say $i
128+
}
129+
}
130+
131+
say "Usando la forma posfija de for - en una sola línea";
132+
.say if $_ %% 2 && $_ != 16 && !($_ %% 3) for 10 .. 55;

0 commit comments

Comments
 (0)