Thomas Darimont
Erfahrenes Mitglied
Hallo,
hier mal ein kleines Beispiel wie man eine rekursive Lambda Expression definieren kann - dies ist eher eine Spielerei ;-)
Der Trick zur Rekursiven Referenzierung innerhalb einer lambda Expression ist das entsprechende Feld "voll" zu qualifizieren.
Gruß Tom
hier mal ein kleines Beispiel wie man eine rekursive Lambda Expression definieren kann - dies ist eher eine Spielerei ;-)
Der Trick zur Rekursiven Referenzierung innerhalb einer lambda Expression ist das entsprechende Feld "voll" zu qualifizieren.
Java:
package de.tutorials.training.lambda;
import java.util.function.UnaryOperator;
/**
* @author Thomas Darimont
*/
public class RecursiveLambdaExample {
UnaryOperator<Integer> instanceFac = i -> i == 0 ? 1 : i * this.instanceFac.apply( i - 1);
static UnaryOperator<Integer> staticFac = i -> i == 0 ? 1 : i * RecursiveLambdaExample.staticFac.apply( i - 1);
public static void main(String[] args) {
new RecursiveLambdaExample().demo();
}
private void demo() {
System.out.println(instanceFac.apply(5));
System.out.println(staticFac.apply(5));
UnaryOperator<Integer>[] arrayFac = new UnaryOperator[1];
arrayFac[0] = i -> i == 0 ? 1 : i * arrayFac[0].apply( i - 1);
System.out.println(arrayFac[0].apply(5));
}
}
Gruß Tom
Zuletzt bearbeitet: