F#fsi.AddPrinter:AddPrinter能否将列表分开?

时间:2012-12-15 15:13:58

标签: f# fsi

在我们的project中,我们使用fsi.AddPrinter打印类型formula<fol>.

为了方便起见,我们在fsx文件中包含fsi.AddPrinter sprint_fol_formula,将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具有内置功能,可以将列表分开,然后单独打印每种类型。

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

如果这是真的,你可以在记录的地方添加一个参考。

1 个答案:

答案 0 :(得分:2)

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