numero
42, 3.14, -7, 1.5e6
Enteros y decimales son el mismo tipo. Aritmética estándar con +, -, *, /, %.
WN++ es de tipado dinámico: una variable puede guardar cualquier tipo de valor, y ese tipo puede cambiar. No declaras el tipo, WN++ lo infiere. Cuando algo no cuadra, te lo dice en ejecución.
numero f64Todos los números en WN++ 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
lorea(cachar(goles_alexis)) // → numeroLas operaciones aritméticas estándar:
wea partidos = 180wea victorias = 98wea porcentaje = victorias / partidos * 100
lorea(porcentaje) // → 54.44444444444444wea minutos = 94wea descuento = minutos % 90 // módulolorea(descuento) // → 4Cadenas de caracteres entre comillas dobles o simples. Se concatenan con +.
wea jugador = "Arturo Vidal"wea apodo = 'El Rey'wea completo = jugador + " — " + apodo
lorea(completo) // → Arturo Vidal — El ReyTexto con números se convierte automáticamente al concatenar:
wea nombre = "Gary Medel"wea tarjetas = 15
lorea(nombre + " tiene " + tarjetas + " tarjetas amarillas")// → Gary Medel tiene 15 tarjetas amarillasSecuencias de escape:
lorea("Primera línea\nSegunda línea")lorea("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
lorea(puede_jugar) // → verdadLas comparaciones devuelven booleanos:
wea goles_chile = 3wea goles_bolivia = 0
lorea(goles_chile > goles_bolivia) // → verdadlorea(goles_chile == goles_bolivia) // → falsolorea(goles_chile != goles_bolivia) // → verdadValores tratados como falso — se evalúan como falso en un cachai:
| Valor | ¿Falso? |
|---|---|
falso | ✓ |
nada | ✓ |
0 | ✓ |
"" | ✓ |
| Todo lo demás | ✗ |
cachai (0) { lorea("nunca llega acá")}
cachai ("") { lorea("tampoco acá")}
cachai ("Colo-Colo") { lorea("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) { lorea("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:
lorea(plantel[0]) // → Bravolorea(plantel[2]) // → Maripánlorea(plantel[-1]) // → Vidal (índice negativo: desde el final)Modificar un elemento:
plantel[4] = "Brereton"lorea(plantel[4]) // → BreretonLargo:
lorea(largo(plantel)) // → 6Iterar:
para (jugador en plantel) { lorea(" " + jugador)}Listas anidadas:
wea fixture = [ ["Chile", "Bolivia"], ["Argentina", "Perú"], ["Uruguay", "Colombia"]]
lorea(fixture[0]) // → [Chile, Bolivia]lorea(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:
lorea(jugador["nombre"]) // → Charles Aránguizlorea(jugador["copas"]) // → 2lorea(jugador["clubes"][0]) // → La UModificar un valor:
jugador["copas"] = 3Clave inexistente:
lorea(jugador["sueldo"])// Error: La clave 'sueldo' no existe papito.Mapas anidados:
wea seleccion = { "pais": "Chile", "apodo": "La Roja", "tecnico": { "nombre": "Ricardo Gareca", "pais": "Argentina" }}
lorea(seleccion["tecnico"]["nombre"]) // → Ricardo Garecacachar()La función nativa cachar() devuelve el tipo de cualquier valor como texto:
lorea(cachar(42)) // → numerolorea(cachar("La Roja")) // → textolorea(cachar(verdad)) // → booleanolorea(cachar(nada)) // → nadalorea(cachar([1, 2, 3])) // → listalorea(cachar({"a": 1})) // → mapalorea(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 } } }}
lorea(describir(9)) // → el número 9lorea(describir("Estadio Monumental")) // → el texto "Estadio Monumental"lorea(describir([1, 2, 3])) // → una lista de 3 elementoslorea(describir(nada)) // → un nadanumero
42, 3.14, -7, 1.5e6
Enteros y decimales son el mismo tipo. Aritmética estándar con +, -, *, /, %.
texto
"wena", 'wn'
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. Se evalúa como falso 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.