此功能&函数调用:
def listRange(lo: Int, hi: Int): List[Int] =
if (lo >= hi) Nil
else {
println(listRange(lo + 1, hi) + ","+lo)
lo :: listRange(lo + 1, hi)
}
listRange(1, 3)
生成此输出:
/> List(),2
//| List(2),1
//| List(),2
//| res1: List[Int] = List(1, 2)
为什么每次递归迭代都会输出一个空列表?
答案 0 :(得分:4)
此
List()
is equivalent to Nil
,最后调用
println(listRange(lo + 1, hi) + ","+lo)
将从Nil
获得listRange
的值,并显示该值。