FoldRight函数scala

时间:2012-12-25 13:46:19

标签: scala

我有这个函数使用foldright附加两个列表

def append[T](l1: List[T], l2: List[T]): List[T] = (l1 :\ l2) ((a,b) => a::b)

scala返回:

val l1 = List(1,2,3,4,5)
val l2 = List(6,7,8,9,10)
println(append(l1,l2))
Result: List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

从右到左,结果不应该相反?为什么要这样回来?

1 个答案:

答案 0 :(得分:3)

foldRight从右到左执行,因此迭代是,

1:a是5,b是6,7,8,9,10,结果是5,6,7,8,9,10

2:a为4,b为5,6,7,8,9,10,结果为4,5,6,7,8,9,10

...

最终结果是1,2,3,...,8,9,10