构建/展平ATS中的列表列表

时间:2017-05-24 17:33:48

标签: ats

如何在ATS中形成列表列表?

例如,我希望列表包含列表的所有排列(1,2,3)。

此外,如何将列表列表展平为列表?

1 个答案:

答案 0 :(得分:0)

假设您要使用list0(未编入索引):

val xs1 = g0ofg1($list{int}(1,2,3))
val xs2 = g0ofg1($list{int}(1,3,2))
val xs3 = g0ofg1($list{int}(2,1,3))
val xs4 = g0ofg1($list{int}(2,3,1))
val xs5 = g0ofg1($list{int}(3,1,2))
val xs6 = g0ofg1($list{int}(3,2,1))
val xss = g0ofg1($list{list0(int)}(xs1, xs2, xs3, xs4, xs5, xs6))

对于展平,您可以使用list0_concat

fun{a:t@ype}
flatten(xss: list0(list0(a))): list0(a) = list0_concat<a>(xss)