example. 精确常数[#76]

Formula façade适合快速试算。这里的结果仍来自构建时的计算:

12

结果是精确的1/2,不是浮点近似。φ:calculate读取Formula文本,然后执行精确常数计算。除零等错误会成为结构化诊断。

也可以从头构造相同的值,并直接调用Semantic pipeline:

@(define half
    (math-calculate
      (◆:add (◆:divide (◆:constant 1) (◆:constant 3))
             (◆:divide (◆:constant 1) (◆:constant 6)))))
  @math[(math-report-result half)]

math-calculate的参数是一个Semantic值。构造器只接受Semantic操作数,所以误把字符串传入核心API会立即得到契约错误;要解析文本,就在边界使用φ:read或φ:calculate。