0

作为F# fsi.AddPrinter 的后续:AddPrinter 是否有能力将列表分开?

我不知道类型打印机应该提供处理列表作为输入。

因此,对于类型打印机的要求/应该要求,是否有任何已发布的标准?

您能否提供此类代码示例的参考。

4

1 回答 1

3

我不知道类型打印机应该提供处理列表作为输入。

我建议你不要这样做。如果你这样做了,你就违反了 KISS 原则,并且可能会以一种非常标准的奇怪方式让其他团队成员感到惊讶'T list。只需提供一台打印机'T,让 F# Interactive 解决剩下的问题。

你可以考虑这种情况

type Theorem = Axiom list

在您关心Theorem并希望以适当方式显示它的地方。然后定义打印机是有意义的,以便将 aTheorem打印为

:- axiom 1, axiom 2, ..., axiom n.

此示例不是一个很好的示例,因为您可能更喜欢类型安全的解决方案

type Theorem = Theorem of Axiom list

也就是说,你可能会问你是否应该去fsi.AddPrinter。由于遗留原因,这些fsi.AddPrinter位可能存在。更通用的解决方案是覆盖ToString()方法并使用StructuredFormatDisplay属性,以便为 和 提供良好的打印机,fscfsi,printf "%A"printf "%O"一起使用。

于 2012-12-15T20:27:28.263 回答