是否存在直接打印int列表的函数?我必须打印int列表以进行调试。我知道我可以通过编写自己的函数来实现这一目标,但我想知道还有其他方法吗?
答案 0 :(得分:1)
在Poly / ML中有一个特殊函数PolyML.print
,它将使用适当的漂亮打印函数打印大多数值。它不属于标准ML,这就是PolyML
结构的原因。如果函数可能是多态的,则可能需要使用类型约束。
> fun f (x: int list) = (PolyML.print x; ());
val f = fn: int list -> unit
> f [1,2,3,4];
[1, 2, 3, 4]
val it = (): unit
您可以使用调试器在Poly / ML中获得更全面的调试信息。请参阅http://www.polyml.org/documentation/Tutorials/Debugging.html。
答案 1 :(得分:0)
不,在SML中没有内置的方法可以打印除字符串以外的任何内容。您可以编写自己的实用程序,也可以将函数分解为可在REPL中单独测试的较小组件,然后您将自动打印返回值。
如果你想构建自己的实用程序,MLton wiki有一个页面描述如何构建一个小型组合子库来打印大多数内置类型:http://mlton.org/TypeIndexedValues#_signature。
对于列表,它们可以写到:
val "[3, 1, 4]" =
let open Show in show (list int) end [3, 1, 4]