user_123945839432
user_123945839432

Reputation: 189

Creating a range in Scala recursively

I am new to Scala and I am still trying to get used to its syntax and rules.

I have a method that takes two inputs and returns a list with the numbers in between, excluding the last number. For example:

int a = 2
int b = 5

The list would be {2,3,4}

I have a method that creates a list but also account for the last digit.

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

I tried creating a new variable but that did not work. Any ideas on how to make that last digit not be part of the list?

Upvotes: 0

Views: 138

Answers (2)

Al Iacovella
Al Iacovella

Reputation: 456

I'm not sure if you are specifically trying to do this with a recursive call but if all you really want is the list of numbers from X to Y excluding Y, you can just do the following:

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

Upvotes: 0

irundaia
irundaia

Reputation: 1730

Think about your base case. What happens if you call fromTo(a,a) for some integer a.

Maybe a bit off topic, but you're also assuming that low <= high might want to look into that as well.

Upvotes: 1

Related Questions