Rekursion

Rekursionen spielen in der reinen funktionalen Programmierung eine größere Rolle als in der imperativen Programmierung; dies liegt teilweise an der Restriktion, dass Variablen unveränderbar sind. Beispielsweise kann man keine Schleifenzähler verwenden, die sich bei jedem Durchlaufen einer Schleife verändern. Eine Möglichkeit, Schleifen in einer rein funktionalen Weise zu implementieren, ist die Anwendung der Rekursion.

Ein gutes Beispiel ist die Berechnung von Fakultäten. Hier sehen Sie eine imperative Implementierung mit einer Schleife:

// code-examples/FP/recursion/factorial-loop-script.scala

def factorial_loop(i: BigInt): BigInt = {
  var result = BigInt(1)
  for (j <- 2 to i.intValue)
    result *= j
  result
}

for (i <- 1 to 10) println(i+": ...

Get Programmieren mit Scala now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.