List SML/NJ-在执行过程中打印列表
我想在SML程序中使用print函数进行调试,以便在函数内部和执行期间(例如在let块内部)打印整数列表类型的数据。但是,正如我看到的,print只能打印字符串类型的数据。我不能等待结果返回来打印我想要的内容,因为我创建的函数在执行过程中进行了分支,并创建了许多不同的列表,我想看看每个分支末尾的结果列表是什么 因此,有没有一种方法可以像打印字符串一样在函数内部打印列表?如果是int列表,您可以执行以下操作:List SML/NJ-在执行过程中打印列表,list,printing,sml,smlnj,List,Printing,Sml,Smlnj,我想在SML程序中使用print函数进行调试,以便在函数内部和执行期间(例如在let块内部)打印整数列表类型的数据。但是,正如我看到的,print只能打印字符串类型的数据。我不能等待结果返回来打印我想要的内容,因为我创建的函数在执行过程中进行了分支,并创建了许多不同的列表,我想看看每个分支末尾的结果列表是什么 因此,有没有一种方法可以像打印字符串一样在函数内部打印列表?如果是int列表,您可以执行以下操作: fun printIntList ints = app (fn i => prin
fun printIntList ints = app (fn i => print(Int.toString i ^" ")) ints;
然后printIntList[1,2,3]将打印1,2,3
您可以为其他类型执行类似的操作
在编辑:这是最好的,你可以做与直SML。SML/NJ有自己的功能,包括访问编译器内部和用户自定义的漂亮打印,这听起来很有希望——尽管我对它们对标准库的扩展几乎没有经验。如果它是一个int列表,您可以执行以下操作:
fun printIntList ints = app (fn i => print(Int.toString i ^" ")) ints;
然后printIntList[1,2,3]将打印1,2,3
您可以为其他类型执行类似的操作
在编辑:这是最好的,你可以做与直SML。SML/NJ有自己的功能,包括访问编译器内部和用户自定义的漂亮打印,这听起来很有希望——尽管我对它们对标准库的扩展几乎没有经验。将int列表转换为字符串的简单函数:
fun intlistToString [] = ""
| intlistToString [x] = Int.toString x
| intlistToString (x::xs) = Int.toString x ^ ", " ^ intlistToString xs
然后可以使用print intlistToString myList而不是print myList。它不会打印列表周围的方括号,也不会没有更多的代码,但我将把它作为练习,因为我很懒。将整数列表转换为字符串的简单函数:
fun intlistToString [] = ""
| intlistToString [x] = Int.toString x
| intlistToString (x::xs) = Int.toString x ^ ", " ^ intlistToString xs
然后可以使用print intlistToString myList而不是print myList。它不会打印列表周围的方括号,也不会没有更多的代码,但我会把它作为练习,因为我很懒。我不能等待结果返回打印我想要的内容,所以你想做什么?你需要至少提供一些演示代码。也许我写的没有足够的说明,但我希望能够在函数内打印我有权访问的列表,例如,在let块中编辑问题。编辑问题。你需要实现从列表到字符串的转换,然后打印它。sml支持;所以你可以先打印它,然后返回你需要返回的任何结果。我不能等待结果返回来打印我想要的,那么你想做什么?你需要至少提供一些演示代码。也许我写的没有足够的说明,但我希望能够在函数内打印我有权访问的列表,例如,在let块中编辑问题。编辑问题。你需要实现从列表到字符串的转换,然后打印它。sml支持;因此,您可以先打印它,然后返回需要返回的任何结果。