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。