Referencia de funciones de cálculo
Todas las etiquetas del sublenguaje <compute>, agrupadas. La
sección Lenguaje de cálculo explica cómo encajan entre sí.
Cómo leer la columna «Firma»: int|str|list es cualquiera de los tres tipos, … es
cualquier cantidad de hijos, ? marca un atributo opcional, 1 es exactamente una
expresión hija y — significa que la etiqueta no da un valor propio. Las ranuras — los
hijos con un puesto — aparecen por nombre en la firma de la etiqueta que las posee.
Literales y referencias
A fondo: El sublenguaje compute
| Etiqueta | Firma | Qué hace |
|---|---|---|
<int> | v= → int | Un literal entero (atributo v) |
<str> | v= → str | Un literal de cadena (atributo v) |
<list> | v= o int… → list | Una lista literal de enteros, o armada con expresiones anidadas |
<field> | name= → str | El valor de una secuencia en el ámbito — como ${{X}} |
<var> | name= → int|str|list | Un valor ligado con <let> |
<let> | name= + 1 → — | Nombra un resultado intermedio para las etiquetas hermanas |
<current> | → int|str | El elemento actual de la iteración (dentro de <do>) |
<current_index> | → int | El índice del elemento actual, desde cero |
<acc> | → int|str|list | El acumulador (dentro de <reduce>) |
Listas e iteración
A fondo: Listas e iteración
| Etiqueta | Firma | Qué hace |
|---|---|---|
<each> | <over> <do> → list | Transforma cada elemento → una lista |
<reduce> | <over> <init> <do> → int|str|list | Pliega una lista en un solo valor (<acc>) |
<join> | list + sep=? → str | Lista → cadena (atributo sep) |
<at> | <in> <index> + default=? → int|str | Elemento por índice (atributo default) |
<length> | str|list → int | Largo de una cadena o de una lista |
Aritmética
A fondo: Aritmética
| Etiqueta | Firma | Qué hace |
|---|---|---|
<add> | int… → int | Suma de todos los hijos (vacío → 0) |
<subtract> | int… → int | El primero menos la suma de los demás |
<multiply> | int… → int | Producto (vacío → 1) |
<divide> | int int → int | División entera hacia −∞ (2 hijos) |
<mod> | int int → int | Residuo euclidiano, siempre ≥ 0 |
Cadenas, codificación y formato
A fondo: Cadenas y formato
| Etiqueta | Firma | Qué hace |
|---|---|---|
<encode> | str(1) + as= → str | Carácter → número (base36/ascii/hex/…) |
<to_number> | str → int | Cadena de dígitos → entero |
<pad> | int|str + width= fill=? → str | Rellena a la izquierda hasta un ancho (width, fill) |
<concat> | int|str… → str | Une varias partes en una cadena |
<upper> / <lower> | str → str | Mayúsculas / minúsculas |
<capitalize> | str → str | Primera letra en mayúscula |
<title> | str → str | Primera letra de cada palabra en mayúscula |
<mask> | str + pattern= → str | Máscara de despliegue (pattern: x/w/*) |
<slice> | str + from= to=? → str | Subcadena [from, to) |
<replace> | str + from= to= → str | Reemplaza todas las apariciones (from, to) |
<trim> | str → str | Quita los espacios de los extremos |
<group> | str + size=? sep=? → str | Agrupa desde la derecha (size, sep) |
Condicionales
A fondo: Condicionales
| Etiqueta | Firma | Qué hace |
|---|---|---|
<choose> | <when>… <otherwise> → int|str|list | Elige una rama; requiere <otherwise> |
<when> | <test> <then> → — | Una rama: predicado <test> + valor <then> |
<otherwise> | 1 → int|str|list | La rama «si no» (obligatoria) |
<test> | 1 → yes|no | Contiene un predicado, da sí/no |
<then> | 1 → int|str|list | El valor de la rama que coincidió |
<equals> | int|str ×2 → yes|no | Predicado: dos enteros son iguales |
<greater_than> | int int → yes|no | Predicado: A > B |
<less_than> | int int → yes|no | Predicado: A < B |
<is_digit> | str(1) → yes|no | Predicado: un carácter es un dígito 0–9 |
Envoltorios y especiales
| Etiqueta | Firma | Qué hace |
|---|---|---|
<over> | 1 → str|list | La lista de entrada para <each> / <reduce> |
<do> | 1 → int|str|list | El cuerpo de la iteración para <each> / <reduce> |
<init> | 1 → int|str|list | El valor inicial del acumulador para <reduce> |
<in> | 1 → list | La lista para <at> |
<index> | 1 → int | El índice del elemento para <at> |
<result> | 1 → int|str|list | El valor final de un <compute> |
<valid> | 1 → — | Rechaza y reintenta hasta obtener algo válido |
Vea la sección Lenguaje de cálculo para ejemplos resueltos.