0

在我们的项目中,我们fsi.AddPrinter用于打印类型formula<fol>.

为了更容易,我们fsi.AddPrinter sprint_fol_formula在 fsx 文件中包含将 AST 结果转换为人类可读的结果。

val inline sprint_fol_formula : formula<fol> -> string

在创建测试用例的过程中,我们还输出 AST 结果和人类可读的结果。

AST 结果是处理公式的结果。为了在单元测试中将 AST 转换为人类可读的格式,我们只需使用sprint_fol_formula astResult.

现在如果结果formula<fol> list不是formula<fol>,使用 FSI 时会输出正确的结果,但sprint_fol_formula不接受formula<fol> list

对于差异,我可以得出的唯一合理答案是它fsi.AddPrinter具有将列表分开然后单独打印每种类型的内置能力。

这是真的,还是我错过了什么?

如果这是真的,您能否在记录的地方添加参考。

4

1 回答 1

2

发生的事情很简单。有一个打印机'a list,它打印列表中的每个元素(或仅打印第一个元素,取决于它们的文本长度和列表的长度),并很好地格式化它([ _; _; _; ... ]。打印项目时,它使用您的打印机。

于 2012-12-15T17:38:49.400 回答