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.