以递归方式在Scala中创建范围

时间:2016-01-26 20:27:19

标签: scala recursion

我是Scala的新手,我仍然习惯于习惯它的语法和规则。

我有一个方法,它接受两个输入并返回一个列表,其中包含数字,不包括最后一个数字。例如:

int a = 2
int b = 5

列表为{2,3,4}

我有一个创建列表的方法,但也考虑了最后一位数。

def fromTo(low:Int,high:Int): List[Int] = {
    if(low == high)
      lo::Nil
    else
      lo::fromTo(low+1,hi)
    }

我尝试创建一个新变量但是没有用。关于如何使最后一位数字不属于列表的任何想法?

2 个答案:

答案 0 :(得分:1)

考虑你的基本情况。如果您为某个整数fromTo(a,a)调用a会发生什么情况。

也许有点偏离主题,但你也假设low <= high也可能想要查看它。

答案 1 :(得分:0)

我不确定你是否特意尝试使用递归调用,但如果您真正想要的是从X到Y的数字列表(不包括Y),您可以执行以下操作:

scala> (2 until 5).toList
res3: List[Int] = List(2, 3, 4)