example. Semantic:构造可计算的值[#72]

下面的Scheme代码建立多项式。每个构造器都接收Semantic值;数值用精确有理数表示:

@(define x (◆:coordinate 'x))
  @(define polynomial
    (◆:add
      (◆:power x (◆:constant 3))
      (◆:multiply (◆:constant 2) x)))

  @math[polynomial]

◆:coordinate返回一个携带“独立坐标”声明的数学值;◆:constant建立精确常数;◆:power和◆:multiply构造子项;◆:add组合它们。最后的math命令只显示这个值,不执行化简。

表达式的内部term可检查为sexp:

(+ (^ (var x) (num "3")) (* (num "2") (var x)))

它大致是(+ (^ (var x) (num "3")) (* (num "2") (var x)))。来源位置、显示偏好和声明保存在值的旁侧metadata中,不混进关系规则处理的term。