Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List SML/NJ-在执行过程中打印列表_List_Printing_Sml_Smlnj - Fatal编程技术网

List SML/NJ-在执行过程中打印列表

List SML/NJ-在执行过程中打印列表,list,printing,sml,smlnj,List,Printing,Sml,Smlnj,我想在SML程序中使用print函数进行调试,以便在函数内部和执行期间(例如在let块内部)打印整数列表类型的数据。但是,正如我看到的,print只能打印字符串类型的数据。我不能等待结果返回来打印我想要的内容,因为我创建的函数在执行过程中进行了分支,并创建了许多不同的列表,我想看看每个分支末尾的结果列表是什么 因此,有没有一种方法可以像打印字符串一样在函数内部打印列表?如果是int列表,您可以执行以下操作: fun printIntList ints = app (fn i => prin

我想在SML程序中使用print函数进行调试,以便在函数内部和执行期间(例如在let块内部)打印整数列表类型的数据。但是,正如我看到的,print只能打印字符串类型的数据。我不能等待结果返回来打印我想要的内容,因为我创建的函数在执行过程中进行了分支,并创建了许多不同的列表,我想看看每个分支末尾的结果列表是什么

因此,有没有一种方法可以像打印字符串一样在函数内部打印列表?

如果是int列表,您可以执行以下操作:

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支持;因此,您可以先打印它,然后返回需要返回的任何结果。