Scala Range por muito tempo

Eu sou novo no idioma Scala.

Eu preciso do Range for Long type.

Eu preciso de uma lista de [1, 2, 3 ... 10000000] com o passo 1. Se eu usar até / to eu recebo um erro por causa do uso de Long em vez de Int.

Eu tento escrever uma função simples que espera um começo, um fim e uma lista vazia e gera uma lista de [início ... fim].

Aqui está minha função:

<code>def range_l(start : Long, end : Long, list : List[Long]) : List[Long] = {
    if (start == end){
        val add_to_list = start :: list
        return add_to_list
    }
    else {
        val add_to_list = start :: list
        range_l(start + 1, end, add_to_list)
    }
}
</code>

Se eu chamo assim:range_l(1L, 1000000L, List()) eu receboOutOfMemory erro na seguinte linha:add_to_list = start :: list

O que você pode me aconselhar? Como posso obterRange[Long] ou como posso otimizar a função. Como posso evitar o OutOfMemory?

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion