标准ML:如何从标准ML列表中访问列

时间:2015-02-05 11:08:47

标签: ml

假设我有一个列表清单 list = [[1,2,3],[4,5,6],[7,8,9]] 我想计算列的总和。 即第一列是[1,4,7],其总和是12     第二列是[2,5,8],总和是15,依此类推

标准ML中有没有有效的方法(复杂性较低)来做到这一点?请帮忙

1 个答案:

答案 0 :(得分:2)

例如:

fun transpose [] = []
  | transpose ([]::xss) = []
  | transpose xss = map hd xss :: transpose (map tl xss)

val sum = foldl op+ 0

val sumsOfColumns = map sum o transpose

使用示例:

sumsOfColumns [[1,2,3],[4,5,6],[7,8,9]]  (* => [12, 15, 18] *)