Lenguaje de hojas
Cómo se escribe y evalúa una hoja: notación, formas de línea, nombres, líneas estrictas frente a silenciosas y el comando total.
Una hoja de Numlex es una pila de líneas lógicas. Escribes una línea normal de texto de bloc de notas y aparece un resultado comprobado en la columna de respuestas de al lado.
Esta página es el punto de partida formal del lenguaje de hojas: la notación que usa toda la
referencia, todas las formas que puede tomar una línea, las reglas de nombres y asignaciones,
la diferencia entre líneas estrictas y prosa silenciosa, y el comando integrado total.
Notación
La referencia usa unos pocos marcadores:
| Marcador | Significado |
|---|---|
<expr> | cualquier expresión aritmética |
<value> | un valor numérico |
<unit> | una unidad o una expresión sobre unidades |
<place> | nombre de lugar de texto libre (hasta 100 caracteres) |
<Answer Token> | un token de respuesta insertado (marcador U+FFFC) |
Las palabras del sintaxis son inglesas. Donde se indica, no distinguen mayúsculas
(OF funciona como of, Per Day como per day). El idioma de la interfaz y el formato
regional de números son ajustes independientes: la localización nunca cambia la sintaxis.
Una línea, un resultado
Cada línea lógica produce un resultado en la columna derecha. Las líneas se evalúan de arriba abajo, y un nombre declarado en una línea es visible para las líneas de debajo.
Formas de línea
| Forma | Ejemplo | Comportamiento |
|---|---|---|
| Línea vacía | Sin resultado. | |
| Encabezado | # Payroll sheet | Encabezado visual; se omite en los cálculos. |
| Comentario | // week total | Línea de encabezado/comentario omitible: sin resultado y nunca forma parte de un cálculo (ni asignación ni «nombre de hoja»). |
| Etiqueta | Total: | Una línea que termina en dos puntos es una etiqueta/separador; se evalúa como omisión. |
| Valor con nombre | base pay = 4500 | <name> = <expr>: el nombre son 1–6 palabras ASCII (o una sola palabra de token), ≤ 40 caracteres, la primera palabra empieza por letra y el nombre no contiene operadores. El valor es mutable: una línea <name> = <expr> posterior lo sobrescribe para las líneas siguientes. |
| Total integrado | total | Comando (sin distinguir mayúsculas) que suma las líneas elegibles de la sección actual — consulta el comando total. |
| Expresión numérica | 12 + 30 × 2 | Consulta Operadores y lógica. |
| Porcentaje y dinero | 15% of 490, $24 per day | Consulta Porcentajes y Dinero y tarifas. |
| Unidades | 10 km to m, 90 km per 3 day | Consulta Unidades y cantidades. |
| Bases enteras | 0x1F, 255 as hex | Consulta Números y bases enteras. |
| Fechas | May 5 + 3 weeks | Consulta Fechas. |
| Red | weather in London, distance between … | Consulta Datos en vivo y geografía. |
| Texto normal | bought cable | Silencioso: sin resultado. La única vía heredada — en líneas numéricas, las palabras latinas desconocidas se tachan (5 apples + 3 → 8). La prosa sin números y las palabras de otros alfabetos nunca se evalúan. |
Líneas estrictas y prosa silenciosa
A la mayoría de líneas se les permite ser texto normal: si Numlex no puede leer un cálculo, la línea se queda en silencio. En cambio, tres tipos de línea son estrictos: su forma se apropia por completo de la línea, y un análisis fallido es un error en lugar de un respaldo:
- Líneas de dinero. Una línea con un marcador de divisa (
$,€,100 USD…) debe analizarse por completo como expresión de dinero; de lo contrario es un error oculto y no se adivina nada. - Líneas con forma de fecha.
May 5 + 43(sin palabra de duración) es un error, nunca se «reduce» a números normales. - Líneas con forma de llamada. Una línea con forma de llamada a función (
name() es estricta: una función desconocida es un error, no un grupo entre paréntesis.
Todo lo demás se queda en silencio, incluida la prosa normal, que nunca se marca.
Nombres y asignaciones
- Declara un valor con
name = expression; el nombre representa ese valor en todas las líneas siguientes. - Los nombres son 1–6 palabras ASCII, como máximo 40 caracteres, la primera empieza por letra y no contienen operadores.
- Las asignaciones son mutables: escribir el mismo nombre otra vez lo sobrescribe desde ese punto hacia abajo.
- Los valores de dinero también pueden nombrarse: declara
lunch = $45y luego escribe2 people × lunch(consulta Dinero y tarifas). - Los nombres de hoja son independientes de las constantes de Ajustes; el mecanismo de constantes está documentado en Unidades y constantes personalizadas.
El comando total
El comando exacto es una línea cuyo contenido completo es total (sin distinguir
mayúsculas). Evalúa la suma de los resultados elegibles de la sección actual — desde el
inicio de la hoja o desde el total, encabezado # o divisor exacto --- anterior más
cercano.
- Las líneas
totalno se cuentan entre sí: un total ya calculado no forma parte del siguiente. Sin embargo, una referencia normal a una línea de total es una línea normal y sí se incluye. - Elegibles: números escalares finitos, incluidos los tipos de presentación porcentaje y multiplicador, los escalares con nombre y los enteros exactos (exactos para |v| ≤ 2^53).
- No elegibles: dinero, cantidades con unidades, booleanos, fechas, errores, líneas vacías/de etiqueta y filas agregadas derivadas.
- Sombreado: un valor con nombre o constante activos llamados
totaldesactivan el comando: la línea pasa a ser un valor con nombre normal. - La línea
totales una suma de sección dentro de la hoja. Es distinta de la barra Total inferior de la app, que suma toda la hoja con independencia de las secciones, y de los comandossubtotal/grand total; consulta Etiquetas, subtotales y estadística.
Siguientes pasos
- Números y bases enteras — literales, sufijos compactos, bases enteras exactas.
- Operadores y lógica — precedencia, booleanos y aritmética entera exacta.
- Funciones integradas — las 27 funciones.
- Etiquetas, subtotales y estadística — etiquetas, divisores, subtotales, totales generales y agregados.
- Fechas y horas — líneas con dimensión temporal.
- Cálculos naturales — la guía práctica de las líneas cotidianas.