Numlex 文档
语法参考
反馈问题

表格语言

表格的书写与求值方式:记法、行形式、名称、严格与安静的行,以及 total 命令。

Numlex 表格是一叠逻辑行。你输入一行普通的便笺文本,答案列旁就会出现经过校验的结果。

本页是表格语言的正式起点:整个参考使用的记法、行可以采取的所有形式、名称与赋值规则、 严格行与安静文本的区别,以及内置的 total 命令。

记法

参考中使用少量占位符:

占位符含义
<expr>任意算术表达式
<value>数值
<unit>单位或单位表达式
<place>自由文本地点名称(最多 100 个字符)
<Answer Token>插入的答案令牌(U+FFFC 标记)

语法单词为英文。在注明之处不区分大小写——OF 等同 of,Per Day 等同 per day。界面语言和区域数字格式是相互独立的设置:本地化绝不改变语法本身。

一行一结果

每个逻辑行在右列产生一个结果。行自上而下求值,某一行声明的名称对其下方的行可见。

行的形式

形式示例行为
空行无结果。
标题# Payroll sheet视觉标题;计算时跳过。
注释// week total可跳过的标题/注释行:无结果,永不参与计算(不是赋值,也不是「表格名称」)。
标签Total:以冒号结尾的行是标签/分隔符;按跳过求值。
命名值base pay = 4500<name> = <expr>:名称是 1–6 个 ASCII 单词(或单个令牌单词),≤ 40 个字符,首词以字母开头,名称不含运算符。值可变——后面更靠下的 <name> = <expr> 行会为下方的行覆盖它。
内置合计total命令(不区分大小写),汇总当前小节符合条件的行——参见 total 命令。
数字表达式12 + 30 × 2参见运算符与逻辑。
百分比与货币15% of 490、$24 per day参见百分比和货币与费率。
单位10 km to m、90 km per 3 day参见单位与数量。
整数进制0x1F、255 as hex参见数字与进制。
日期May 5 + 3 weeks参见日期。
网络weather in London、distance between …参见实时数据与地理。
普通文本bought cable安静:无结果。唯一的旧式回退——在数字行中,未知拉丁单词会被划掉(5 apples + 3 → 8)。没有数字的普通文本和其他字母的单词永远不会被求值。

严格行与安静文本

大多数行可以是普通文本:如果 Numlex 读不出计算,该行就保持安静。有三类行则是严格的—— 它们的形状完全占用该行,解析失败是错误而不是回退:

  • 货币行。 含货币标记($、€、100 USD …)的行必须完全解析为货币表达式;否则 是隐藏错误,不做任何猜测。
  • 形似日期的行。 May 5 + 43(没有时长单词)是错误——绝不「退化」为普通数字。
  • 形似调用的行。 形如函数调用的行(name()是严格的:未知函数是错误,而不是括号 分组。

其他内容保持安静——包括普通文本,它永远不会被标记。

名称与赋值

  • 用 name = expression 声明值;之后该名称在下面所有行中代表该值。
  • 名称是 1–6 个 ASCII 单词,最多 40 个字符,首词以字母开头,内部没有运算符。
  • 赋值可变:再次写入同一名称会从该处向下覆盖它。
  • 货币值也可以命名——声明 lunch = $45,之后写 2 people × lunch(参见 货币与费率)。
  • 表格名称与设置常量相互独立;常量机制见 自定义单位与常量。

total 命令

确切的命令是内容完全为 total 的行(不区分大小写)。它求当前小节的符合条件结果之和 ——从工作表开头,或最近的上一 total、# 标题或精确 --- 分隔线起。

  • total 行不会互相重复计入:先前算出的合计不进入下一个合计。但对合计行的普通引用是 普通行,会被计入。
  • 符合条件: 有限标量数字——包括百分比和倍数显示类型、命名标量,以及精确整数 (在 |v| ≤ 2^53 时精确)。
  • 不符合条件: 货币、带单位的数量、布尔值、日期、错误、空行/标签行和派生聚合行。
  • 遮蔽: 名为 total 的活动命名值或常量会停用该命令——该行变成普通命名值。
  • total 行是表格内的小节合计。它不同于应用底部的 Total 面板(后者不分小节汇总整个 表格),也不同于 subtotal / grand total 命令——见 标签、小计与统计。

下一步

发现文档有问题? 在 GitHub 上反馈