我有这个函数使用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)
从右到左,结果不应该相反?为什么要这样回来?
答案 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