Variables
integer x = 42
number pi = 3.14
string name = "Clean"
boolean active = trueDeclara variables con tipo y valores iniciales.
Imprimir
print "Hola, Mundo!"
print("Con paréntesis")Muestra texto en la consola. Los paréntesis son opcionales.
Comentarios
// Este es un comentarioLos comentarios de una línea comienzan con //.
Entrada
string nombre = input("Ingresa tu nombre: ")
integer edad = input.integer()
boolean confirmar = input.yesNo("¿Continuar?")Lee entrada del usuario con métodos type-safe.
Declaración de Función
functions:
integer add(integer a, integer b)
return a + bDeclara funciones en un bloque functions: con el tipo de retorno primero.
Llamadas a Funciones
integer result = add(3, 4)
print result.toString()Llama funciones por nombre con argumentos.
If/Else
if x > 0
print "positivo"
else
print "no positivo"Ramificación condicional sin paréntesis.
Bucle While
while i < 10
print i.toString()
i = i + 1Repite mientras la condición sea verdadera, sin paréntesis.
Iterar Rango
iterate i in 0 to 10
print i.toString()Itera sobre un rango numérico usando la palabra clave 'in'.
Iterar Array
iterate item in myArray
print item.toString()Itera sobre elementos de un array usando la palabra clave 'in'.
Clase
class Person
string name
integer age
constructor(string n, integer a)
name = n
age = aDefine clases con campos directamente bajo la declaración de clase. Sin palabra clave 'this' - usa nombres de parámetros diferentes.
Herencia
class Dog is Animal
string breed
constructor(string n, string b)
base(n)
breed = bExtiende clases con palabra clave 'is' y llamadas al constructor base().
Arrays
array<integer> nums = [1, 2, 3, 4, 5]
nums.push(6)
integer len = nums.length()Arrays tipados con push, length e indexación. Usa array<T> en minúsculas.
Aritméticos
integer suma = a + b
integer dif = a - b
integer prod = a * b
integer coc = a / b
integer resto = a % b
number potencia = x ^ yOperadores aritméticos básicos: +, -, *, /, %, ^
Comparación
boolean eq = a == b
boolean neq = a != b
boolean lt = a < b
boolean gt = a > b
boolean lte = a <= b
boolean gte = a >= bOperadores de comparación: ==, !=, <, >, <=, >=
Lógicos
boolean ambos = a and b
boolean cualquiera = a or b
boolean opuesto = not a
boolean verificar = x is SomeTypeOperadores lógicos: and, or, not, is
Interpolación de Strings
string saludo = "Hola, {nombre}!"
string resultado = "Suma: {a + b}"Inserta expresiones en strings usando llaves.
Métodos
string s = "hola mundo"
s.length()
s.toUpperCase()
s.substring(0, 5)
s.contains("mundo")
s.replace("mundo", "Clean")
s.split(" ")
s.trim()Métodos integrados de manipulación de strings.
Require
functions:
integer divide(integer a, integer b)
require b != 0
return a / bValidación de precondiciones con require.
Rules
functions:
integer clamp(integer val, integer min, integer max)
rules
val >= min
val <= max
return valMúltiples reglas de validación.
Later (Await)
later data = start fetchData()
print dataEspera el resultado de función asíncrona con 'later' y 'start'.
Background (Sin espera)
background logAction()
function syncCache() backgroundEjecuta funciones asíncronas sin esperar los resultados.
Bloque Import
import:
math
utils/stringsImporta módulos al inicio de un archivo.
Funciones Privadas
private:
void helperFunction()
// solo internoMarca funciones como solo internas con bloque private:.
Bloque Tests
tests:
"add devuelve suma": add(2, 3) = 5
"dividir por cero falla": divide(10, 0) = errorDefine pruebas en línea con valores esperados.
Operaciones en Lote
integer:
x = 10
y = 20
print:
"Hola"
"Mundo"
constant:
PI = 3.14159
MAX_SIZE = 100Aplica tipo o función a múltiples declaraciones en un bloque.
Intent
functions:
void processPayment(number amount, string method)
intent "Procesar una transacción de pago"
// cuerpo de la funciónDescribe el propósito de la función en lenguaje natural para herramientas de IA.
Spec
functions:
number calculateDiscount(number price, number pct)
spec "specs/pricing/discount.spec.cln"
return price * (pct / 100)Vincula funciones a documentos de especificación para trazabilidad.
Bloque Source
source:
spec: "specs/payment.spec.cln"
version: "a3f2c1d"Marca archivos como generados desde especificaciones con seguimiento de versión.