Scala Range für lange

Ich bin neu in der Scala-Sprache.

Ich brauche Range für Long Type.

Ich benötige eine Liste von [1, 2, 3 ... 10000000] mit Schritt 1. Wenn ich bis / benutze, wird ein Fehler angezeigt, weil Long anstelle von Int verwendet wird.

Ich versuche, eine einfache Funktion zu schreiben, die einen Anfang, ein Ende und eine leere Liste erwartet und eine Liste von [start .. end] erzeugt.

Hier ist meine Funktion:

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

Wenn ich es so nenne:range_l(1L, 1000000L, List()) Ich bekommeOutOfMemory Fehler in der folgenden Zeile:add_to_list = start :: list

Was kannst du mir raten? Wie bekomme ichRange[Long] oder wie kann ich die funktion optimieren. Wie kann ich OutOfMemory vermeiden?

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage