Funktionen als Resultate?

(Motivation/Wiederholung:) Funktionen sind Daten, können also auch Argumente und Resultate von Funktionen sein. -- Aber Vorsicht:


int f0 () {
  int (*f1 (int x1))(int) {
    int f2 (int x2) {
      return x1 * x2;
    }
    return f2;
  }
  int (*g3) (int) = f1 (3);
  int (*g4) (int) = f1 (4);
  return g3 (g4 (1));
}


f1(3), f1(4) sind wie beschrieben closures


zur Syntax siehe auch Lars Händel: http://www.function-pointer.org/



Johannes Waldmann 2005-01-28