算术核验的模块作用域与构建结果[#37]

checked-property遇到不满足谓词的样本就中止构建,并报告property ID与反例;checked-error只接受指定的异常key,其他异常继续向外传播,没有抛出异常同样失败。

本文同时定义(flora expression-language)模块,导出interpret与simplify。另一篇文章transclude 简化器只会展示代码;调用binding则需显式导入这个模块。模块导入教程实际使用这些定义,无须另外维护一份.scm。

确定性的核验结果可以随内容IR缓存。grove check会重新求值文章;正常build可能复用输入未变的结果。如果计算读取额外文件,要调用depend-on! 登记依赖;读取时间、随机数或外部状态的实验应调用disable-cache!。checked表示读取时核验通过,不表示浏览器中实时运行。