元序 WorldScript 语法速查表
一页纸快速参考。写元序代码时随手查阅。
完整规则见《元序规则》。
五种核心句式
1. State — 定义状态场
[微域|中域|宏域] State 名称 [维度1, 维度2, ...] [= 连续融合(...)]
State 城市交通 [拥堵指数, 平均车速, 车流密度]
微域 State 单车 [车速, 位置, 耐心值]
State 干燥度 = 连续融合(温度↑, 湿度↓, 风速↑, 降水↓)
2. When — 因果规则
When 条件1 & 条件2 ...:
涌现 事件名(参数)
提升/降低/设置为 状态.维度 值
延迟→ 动作 (延迟=N~MTick, 强度=0.x)
反馈→ 动作
偏差[名称] 类型="...", 等级=低|中|高|最高, 扩散半径=N, 优先级=...
When 拥堵指数 > 0.7 & 平均车速 < 15:
涌现 全城预警
提升 公交.发车频率 +30%
偏差[拥堵偏差] 类型="交通", 等级=高, 扩散半径=3
3. Track — 趋势跟踪
Track 状态.维度 持续N个Tick:
拟合 曲线名
计算 变化速率 / 加速度
识别 拐点
推演 N个Tick走势
若预测 条件: 动作
Track 干燥度 持续12个Tick:
拟合 干燥度曲线
若预测 干燥度 > 0.75:
提前升级响应等级
4. Link — 层级联动
Link 低级状态 聚合→ 高级状态
Link 高级状态 约束→ 低级状态
Link 状态A ↔ 状态B // 双向耦合
Link 单车.车速 聚合→ 路段.平均车速
Link 城市.拥堵指数 约束→ 单车.路径偏好
5. Evolve — 自演化
Evolve 目标名 每N个Tick迭代 | 持续迭代 | 当条件时迭代:
修正 目标 权重/阈值/系数 ±值
沉淀 "描述" 到经验库
新增规则 ...
淘汰 规则名
适配 场景
Evolve 信号灯配时 每10个Tick迭代:
根据历史偏差修正权重
沉淀高效方案到经验库
条件表达式
| 写法 |
含义 |
返回 |
状态 > 值 |
大于 |
满足度(0~1) |
状态 < 值 |
小于 |
满足度 |
状态 >= 值 |
大于等于 |
满足度 |
状态 <= 值 |
小于等于 |
满足度 |
状态 == 值 |
等于(接近度) |
接近度 |
状态 != 值 |
不等于 |
1-接近度 |
状态 在 [a,b] |
区间内 |
隶属度 |
条件1 & 条件2 |
因果叠加 |
加权和 |
条件1 或 条件2 |
因果取大 |
max |
非 条件 |
因果取反 |
1-x |
关键:比较不返回 true/false,返回 0~1 的连续满足度。
状态修改
| 写法 |
含义 |
提升 状态 +值 |
相对增加(渐变) |
降低 状态 -值 |
相对减少(渐变) |
设置为 状态 = 值 |
绝对目标(渐变到达) |
状态 ×值 |
乘法缩放 |
所有修改都是连续渐变,单 Tick 变化不超过 Δmax(默认0.3)。
运算符
| 类别 |
运算符 |
| 算术 |
+ - × ÷ ^ |
| 比较 |
> < >= <= == != 在 |
| 逻辑 |
&/且 或 非 |
| 方向 |
↑(正相关) ↓(负相关) →(因果方向) ↔(双向) |
| 延迟 |
延迟→ |
| 反馈 |
反馈→ |
| 聚合 |
聚合→ |
| 约束 |
约束→ |
内置函数
| 函数 |
用法 |
说明 |
连续融合 |
连续融合(a↑, b↓, ...) |
多维度融合为单一连续状态 |
归一化 |
归一化(x, min, max) |
归一化到 [0,1] |
平滑 |
平滑(x, 窗口) |
滑动平均 |
饱和 |
饱和(x, min, max) |
约束在区间内 |
距离 |
距离(a, b) |
两状态连续距离 |
相似度 |
相似度(a, b) |
相似度(0~1) |
使用经验 |
使用经验("名称") |
加载经验库策略 |
保留字
State When Track Link Evolve
涌现 延迟→ 反馈→ 持续 聚合→ 约束→
& 或 非 且
> < >= <= == != 在 不在
偏差 收敛 扩散半径 优先级
迭代 修正 沉淀 经验库
微域 中域 宏域 域
当 则 若 否则 (语义糖,等价于 When)
偏差等级与优先级
等级: 低 → 中 → 高 → 最高
优先级: 低 → 中 → 高 → 最高
偏差[名称] 类型="...", 等级=高, 扩散半径=5, 优先级=高
域前缀
微域 State ... // 个体/单点/最小单元
中域 State ... // 场景/群体/局部系统(默认)
宏域 State ... // 全局/社会/星球级
字面量
| 写法 |
示例 |
说明 |
| 数值 |
0.85 30 |
连续标量,无int/float区分 |
| 百分比 |
75% |
等价于 0.75 |
| 区间 |
[0.3, 0.7] |
连续区间 |
| 向量 |
(25.5, 60, 0.8) |
多维投影 |
| 文本 |
"干旱胁迫" |
仅用于标签/元数据 |
注释
// 单行注释
/*
块注释
可跨行
*/
最小完整程序
State 环境 [温度, 目标温度]
State 加热器 [功率]
When 温度 < 目标温度:
提升 加热器.功率 +0.1
偏差[温度偏差] 类型="过冷", 等级=低
When 温度 > 目标温度:
降低 加热器.功率 -0.1
Track 温度 持续6个Tick:
若预测 温度 > 目标温度 + 0.2:
提前降低加热器功率
Evolve 温控规则 每10个Tick迭代:
根据偏差修正功率步长
元序 vs 传统语言 速记
| 传统语言 |
元序 |
| 变量/类型 |
State 状态场 |
| if/else/switch |
When 因果规则 |
| for/while |
Track 趋势跟踪 |
| 函数/返回值 |
涌现 事件 |
| 作用域/传参 |
Link 层级联动 |
| 版本更新/重启 |
Evolve 自演化 |
| try/catch/Error |
偏差 Deviation |
| 顺序执行 |
Tick 并行因果匹配 |
| 布尔 true/false |
满足度 0~1 |
| null/undefined |
不存在(永远有值) |
速查表版本 v1.0 | 完整规范见《元序规则》