在SML中追加列表

时间:2014-01-31 16:40:12

标签: list append sml

我正在尝试使用append函数添加一个带有另一个int列表列表的int列表列表,但是我无法按照我想要的方式工作。

假设我要[[1,2,3,4,5]]添加[6,7],以便[[1,2,3,4,5,6,7]]

这是我的尝试:[1,2,3,4,5]::[]@[6,7]::[],但它只是将我想要附加的列表作为其自己的列表而不是两个列表组合成一个,如下所示:[[1,2,3,4,5],[6,7]]

如何重新编写操作以使其返回[[1,2,3,4,5,6,7]]

1 个答案:

答案 0 :(得分:2)

你的问题太不明确了。您正在处理嵌套列表。是否要将第二个列表附加到嵌套列表的每个内部列表中,或仅将第一个附加到中?你的例子没有说明。

对于前者:

fun appendAll xss ys = List.map (fn xs => xs @ ys) xss

对于后者:

fun appendHd [] ys = raise Empty
  | appendHd (xs::xss) ys = (xs @ ys)::xss

但是,这些都很少需要,而且如果你最终在那里,我会觉得你正试图解决错误的问题。