在 ghci 中漂亮地打印
Pretty-printing in ghci
有没有办法让 ghci 使用自定义漂亮打印功能而不是对某些类型显示?一个更普遍的问题:使库在交互模式下尽可能可用的一般准则是什么?谢谢。
您可以使用 --interactive-print
标志指定自定义漂亮打印函数,并为任何约束 C
命名范围内类型为 C a => a -> IO ()
的任何函数。 (有关详细信息,请参阅文档的 Section 2.4.9。)
ghci --interactive-print=MyModule.prettyPrint
这意味着您可以从您自己的类型中指定您自己的函数class。没有办法只针对特定类型执行此操作,但您的自定义 class 始终可以包含后备实例,例如
instance Show a => PrettyPrint a where prettyPrint = show
这至少需要 OverlappingInstances
才能工作。
有没有办法让 ghci 使用自定义漂亮打印功能而不是对某些类型显示?一个更普遍的问题:使库在交互模式下尽可能可用的一般准则是什么?谢谢。
您可以使用 --interactive-print
标志指定自定义漂亮打印函数,并为任何约束 C
命名范围内类型为 C a => a -> IO ()
的任何函数。 (有关详细信息,请参阅文档的 Section 2.4.9。)
ghci --interactive-print=MyModule.prettyPrint
这意味着您可以从您自己的类型中指定您自己的函数class。没有办法只针对特定类型执行此操作,但您的自定义 class 始终可以包含后备实例,例如
instance Show a => PrettyPrint a where prettyPrint = show
这至少需要 OverlappingInstances
才能工作。