Scala Range na Long

Jestem nowym użytkownikiem języka Scala.

Potrzebuję Range dla typu Long.

Potrzebuję listy [1, 2, 3 ... 10000000] z krokiem 1. Jeśli używam do / do otrzymam błąd z powodu używania Long zamiast Int.

Próbuję napisać prostą funkcję, która oczekuje początku, końca i pustej listy i generuje listę [początek .. koniec].

Oto moja funkcja:

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

Jeśli nazywam to:range_l(1L, 1000000L, List()) dostajęOutOfMemory błąd w następującym wierszu:add_to_list = start :: list

Co możesz mi doradzić? Jak mogę zdobyćRange[Long] lub jak mogę zoptymalizować funkcję. Jak mogę uniknąć OutOfMemory?

Dziękuję Ci.

questionAnswers(3)

yourAnswerToTheQuestion