gama de scala para largo

Soy nuevo en el lenguaje Scala.

Necesito Range for Long type.

Necesito una Lista de [1, 2, 3 ... 10000000] con el paso 1. Si uso hasta / para obtener un error debido a que uso Long en lugar de Int.

Intento escribir una función simple que espera un inicio, un final y una Lista vacía y genera una Lista de [inicio ... final].

Aquí está mi función:

<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>

Si lo llamo así:range_l(1L, 1000000L, List()) yo obtengoOutOfMemory error en la siguiente línea:add_to_list = start :: list

¿Qué puedes aconsejarme? Como puedo conseguirRange[Long] o como puedo optimizar la función. ¿Cómo puedo evitar OutOfMemory?

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta