¿Qué es IQ++?
IQ++ es un lenguaje de programación experimental creado para aprender jugando. En la versión 1.0 incluye variables, listas, diccionarios, impresión de texto, lógicas híbridas (HTML, CSS, IQ++) y el sistema def++ para crear variables con conjuntos y búsquedas con tuplas.
Todo se declara de forma visual y clara.
Sin complicaciones de sintaxis tradicional.
Combina código IQ++ con lógica HTML y CSS.
Sintaxis general
Un programa IQ++ se escribe línea por línea. Cada instrucción tiene su propio formato. No necesitas punto y coma, aunque se permite usar ; para separar instrucciones en la misma línea.
-- ejemplo básico de IQ++
VARIABLE def with ("nombre") = "IQ++"
IQ.execute_text("Hola, mundo IQ++")
list.def_["rojo", "verde", "azul"]
dict_IQ++_(["lenguaje": "IQ++", "version": "1.0"])
Variables
En IQ++ las variables se definen con la palabra clave VARIABLE, seguida de def with y el nombre entre comillas. Luego se asigna el valor con =.
VARIABLE def with ("edad") = 25
VARIABLE def with ("nombre") = "Pepe"
VARIABLE def with ("activo") = 1
IQ.execute_text("nombre")
IQ.execute_text("edad")
Operadores predefinidos
Por compatibilidad, IQ++ trae los operadores clásicos de C++:
- Aritméticos:
+,-,*,/,% - Comparación:
==,!=,<,>,<=,>= - Lógicos:
&&,||,!
VARIABLE def with ("a") = 10
VARIABLE def with ("b") = 5
VARIABLE def with ("suma") = a + b
IQ.execute_text("suma")
Operadores personalizados
En IQ++ también podés inventar tus propios operadores. Se definen con operator.def_("simbolo"): expresion con a y b.
-- definir operadores propios
operator.def_("<3"): a + b + 100
operator.def_("^^"): a * b + 1
VARIABLE def with ("x") = 5
VARIABLE def with ("y") = 3
VARIABLE def with ("total") = x <3 y
IQ.execute_text("total")
IQ.execute_text("10 ^^ 2")
Listas
Las listas se crean con list.def_[]. Pueden contener números, textos o resultados de variables.
list.def_["manzana", "banana", "pera"]
list.def_[10, 20, 30, 40]
Diccionarios
Los diccionarios usan la forma dict_IQ++_([]). Guardan pares clave: valor.
dict_IQ++_(["nombre": "Ana", "edad": 28])
dict_IQ++_(["lenguaje": "IQ++", "tipo": "experimental"])
Lógicos
IQ++ 1.0 introduce 3 tipos de lógica:
Lógica con base HTML.
Lógica con base CSS.
Lógica con base IQ++.
Siempre empiezan con logic. y dentro usan def_(...).
logic.html(def_("<h1>Hola mundo</h1>"))
logic.css(def_("color: #66fcf1; font-size: 2rem;"))
logic.IQ++(def_("VARIABLE def with (\"x\") = 100"))
def++
El sistema def++ define variables con conjuntos y búsquedas con tuplas. Se escribe:
def++ variable: join_with(IQsearch["a", "b", "c"]):
Crea una variable con el nombre que elijas y le asigna el conjunto/tupla de búsqueda.
Errores de IQ++
Cuando algo falla, IQ++ puede devolver uno de estos errores:
Datos definidos incorrectamente.
Problema en la definición de una entidad.
Error en tuplas o estructuras similares.
Fallo genérico de ejecución.
La instrucción no sigue el formato esperado.
Problema relacionado con una URL.
Problema relacionado con un enlace.
Uso incorrecto de un operador.
Error al invocar una función o variable.
Java++
Java++ es JavaScript con alma de IQ++. Escribís código que se ve como JS moderno y se compila automáticamente a IQ++ para ejecutarse.
Es ideal si ya sabés JavaScript y querés probar IQ++ sin memorizar toda su sintaxis.
Ejemplo Java++
// Java++
let nombre = "IQ++";
let a = 10;
let b = 5;
console.log(a + b);
let frutas = ["manzana", "banana"];
// Esto se compila a IQ++
Tabla de conversión
let x = 10; --> VARIABLE def with ("x") = 10
console.log(x); --> IQ.execute_text("x")
let lista = [1, 2]; --> list.def_[1, 2]
let dict = {a: 1}; --> dict_IQ++_(["a": 1])
// comentario --> -- comentario
Playground
Elegí modo IQ++ o Java++. Si escribís Java++, se convierte automáticamente a IQ++ y se ejecuta.