第 2 课
18 分钟
Docs 0.94.0-alpha.1 (Draft)
现实对象、主体与状态
学习目标:写出第一个 world,声明对象、状态与主体。
world
object
state
subject
三个最基本的声明
world hello_reality {
object greeting {
state text: String = "尚未问候"
}
subject operator "human:reader"
transform greet by operator {
guard greeting.text != "已问候"
effect greeting.text = "已问候"
}
}world:作用域。一组对象、主体与约束共同构成一个世界。object:被指称的现实实体,其state是可观测取值。subject:能够发起变化并承担责任的行为者。主体标识必须带类型前缀(human:/agent:/system:)。transform ... by <subject>:候选变换。没有主体的变换不合法。
guard 与 effect
guard 是提交前必须成立的条件;effect 描述候选现实的状态变化。 注意:写下 effect 不等于现实已经改变,它只是候选。
动手练习
理解检查
为什么每个 transform 都必须绑定 subject?