numero
42, 3.14, -7, 1.5e6
Enteros y decimales son el mismo tipo. Aritmética estándar con +, -, *, /, %.
Piola es de tipado dinámico: una variable puede guardar cualquier tipo de valor, y ese tipo puede cambiar. No declaras el tipo, Piola lo infiere. Cuando algo no cuadra, te lo dice en runtime.
numero f64Todos los números en Piola son punto flotante de 64 bits. No hay distinción entre entero y decimal.
wea goles_alexis = 47 // enterowea promedio_gol = 0.72 // decimalwea deuda_fifa = 1.5e6 // notación científica → 1500000
altiro(cachar(goles_alexis)) // → numeroLas operaciones aritméticas estándar:
wea partidos = 180wea victorias = 98wea porcentaje = victorias / partidos * 100
altiro(porcentaje) // → 54.44444444444444wea minutos = 94wea descuento = minutos % 90 // móduloaltiro(descuento) // → 4Cadenas de caracteres entre comillas dobles o simples. Se concatenan con +.
wea jugador = "Arturo Vidal"wea apodo = 'El Rey'wea completo = jugador + " — " + apodo
altiro(completo) // → Arturo Vidal — El ReyTexto con números se convierte automáticamente al concatenar:
wea nombre = "Gary Medel"wea tarjetas = 15
altiro(nombre + " tiene " + tarjetas + " tarjetas amarillas")// → Gary Medel tiene 15 tarjetas amarillasSecuencias de escape:
altiro("Primera línea\nSegunda línea")altiro("Campeón:\t\"La Roja\"")booleanoSolo dos valores posibles: verdad y falso.
wea es_titular = verdadwea esta_lesionado = falsowea puede_jugar = es_titular y no esta_lesionado
altiro(puede_jugar) // → verdadLas comparaciones devuelven booleanos:
wea goles_chile = 3wea goles_bolivia = 0
altiro(goles_chile > goles_bolivia) // → verdadaltiro(goles_chile == goles_bolivia) // → falsoaltiro(goles_chile != goles_bolivia) // → verdadValores “falsy” — se evalúan como falso en un cachai:
| Valor | Falsy |
|---|---|
falso | ✓ |
nada | ✓ |
0 | ✓ |
"" | ✓ |
| Todo lo demás | ✗ |
cachai (0) { altiro("nunca llega acá")}
cachai ("") { altiro("tampoco acá")}
cachai ("Colo-Colo") { altiro("esto sí se ejecuta") // → esto sí se ejecuta}Representa la ausencia de valor. Es lo que devuelve una función que no retorna nada explícitamente.
wea transferencia = nada // aún no se concreta
cachai (transferencia == nada) { altiro("Alexis sigue sin club, esperando ofertas")}Colección ordenada de valores. Se define con []. Puede mezclar tipos.
wea plantel = ["Bravo", "Medel", "Maripán", "Isla", "Alexis", "Vidal"]wea numeros = [1, 2, 3, 4, 5]wea mixta = [1, "dos", verdad, nada] // válidoAcceso por índice — base cero:
altiro(plantel[0]) // → Bravoaltiro(plantel[2]) // → Maripánaltiro(plantel[-1]) // → Vidal (índice negativo: desde el final)Modificar un elemento:
plantel[4] = "Brereton"altiro(plantel[4]) // → BreretonLargo:
altiro(largo(plantel)) // → 6Iterar:
para (jugador en plantel) { altiro(" " + jugador)}Listas anidadas:
wea fixture = [ ["Chile", "Bolivia"], ["Argentina", "Perú"], ["Uruguay", "Colombia"]]
altiro(fixture[0]) // → [Chile, Bolivia]altiro(fixture[0][1]) // → BoliviaColección de pares clave-valor. Se define con {}. Las claves son texto.
wea jugador = { "nombre": "Charles Aránguiz", "posicion": "mediocampista", "clubes": ["La U", "São Paulo", "Bayer Leverkusen", "La U"], "copas": 2}Acceso por clave:
altiro(jugador["nombre"]) // → Charles Aránguizaltiro(jugador["copas"]) // → 2altiro(jugador["clubes"][0]) // → La UModificar un valor:
jugador["copas"] = 3Clave inexistente:
altiro(jugador["sueldo"])// Error: La clave 'sueldo' no existe papito.Mapas anidados:
wea seleccion = { "pais": "Chile", "apodo": "La Roja", "tecnico": { "nombre": "Ricardo Gareca", "pais": "Argentina" }}
altiro(seleccion["tecnico"]["nombre"]) // → Ricardo Garecacachar()La función nativa cachar() devuelve el tipo de cualquier valor como texto:
altiro(cachar(42)) // → numeroaltiro(cachar("La Roja")) // → textoaltiro(cachar(verdad)) // → booleanoaltiro(cachar(nada)) // → nadaaltiro(cachar([1, 2, 3])) // → listaaltiro(cachar({"a": 1})) // → mapaaltiro(cachar(pega x() {})) // → pegaÚtil para hacer lógica condicional según el tipo:
pega describir(valor) { wea tipo = cachar(valor)
cachai (tipo == "numero") { "el número " + valor } si no { cachai (tipo == "texto") { "el texto \"" + valor + "\"" } si no { cachai (tipo == "lista") { "una lista de " + largo(valor) + " elementos" } si no { "un " + tipo } } }}
altiro(describir(9)) // → el número 9altiro(describir("Estadio Monumental")) // → el texto "Estadio Monumental"altiro(describir([1, 2, 3])) // → una lista de 3 elementosaltiro(describir(nada)) // → un nadanumero
42, 3.14, -7, 1.5e6
Enteros y decimales son el mismo tipo. Aritmética estándar con +, -, *, /, %.
texto
"wena", 'piola'
Concatenación con +. Conversión automática al concatenar con números.
booleano
verdad, falso
Operadores: y, o, no. Comparaciones devuelven booleano.
nada
nada
Ausencia de valor. Falsy en condiciones.
lista
[1, "dos", verdad]
Ordenada, indexada desde 0. Índices negativos desde el final.
mapa
{"clave": valor}
Pares clave-valor. Claves siempre texto. Anidable.