Skip to content

Latest commit

 

History

History
65 lines (52 loc) · 3.34 KB

node.md

File metadata and controls

65 lines (52 loc) · 3.34 KB

定义

基础定义

value

一个value满足以下条件

  • 可被观测,观测的过程与结果未定义,但返回一个node
  • 可被以任一node作参数更改,更改的过程与结果未定义

node

一个node满足以下条件

  • 当没有任何强引用指向此node时此node析构,指向此node的弱引用转为引用特殊值void
  • 当某些node相互引用但无法通过任何根引用可达时这些node会被析构,析构时机未定义
  • 可被以任一node作参数索引,索引的过程与结果未定义,但返回一个value
  • 可被求值,求值的过程与结果未定义,但返回一个value
  • 可被调用,调用的过程与结果未定义,但返回一个value
  • 可被以任一node作参数替换,替换的过程与结果未定义,不作返回
  • 可转换为一混沌布尔值,过程与结果未定义
    • 混沌布尔值:为 真且非假、非真且假、真且假、非真且非假 四种可能
  • 两node可相互比较:以比较优先级低的一方作为参数调用比较优先级高的一方所提供的比较方法,过程与结果未定义,但返还一个混沌布尔值
    • 当两node比较优先级相同时,以双方作为参数调用另一方所提供的比较方法 并对结果进行且(and)运算,调用顺序未定义
    • 混沌布尔值的且(and)运算:双方都为真时真,双方都为假时假
    • 比较语义:node内容相同
  • 两node可相互测同:以测同优先级低的一方作为参数调用测同优先级高的一方所提供的测同方法,过程与结果未定义,但返还一个混沌布尔值
    • 当两node测同优先级相同时,以双方作为参数调用另一方所提供的测同方法 并对结果进行且(and)运算,调用顺序未定义
    • 混沌布尔值的且(and)运算:双方都为真时真,双方都为假时假
    • 测同语义:这是同一个node

经典行为

即常见行为

经典value的行为

  • 可被观测,观测的结果为其内容
  • 可被更改,更改其内容

经典node的行为

  • 可被以任一node作参数索引,返回一个value,相同node的索引结果必定为同一个value,且value未被更改时内容为特殊值void
  • 可被求值,不做任何事并返回一个经典value,内容为自身
  • 可被调用,不做任何事并返回一个经典value,内容为自身
  • 可被以任一node作参数替换,所有指向此node的引用都被强制更改为replace指定的引用,如同这个node本身就是替换参数一般
  • 可转换为一混沌布尔值:真且非假
  • 两node可相互比较:比较优先级36(特殊值的优先级为72),比较方法:参数内容与自身相同时返回真且非假,否则返回非真且假
    • 比较语义:node内容相同
  • 两node可相互测同:测同优先级36(特殊值的优先级为72),测同方法:参数为自身时返回真且非假,否则返回非真且假
    • 测同语义:这是同一个node

表现

node作表达式

表达式

任何node都可以作为表达式
因为所有node都可被求值

s表达式

node作s表达式

node作函数

函数

任何node都可以作为函数
因为所有node都可被调用

经典函数

经典函数