Típusdefiníciók

CeklaFunctional

Típusok magasabbrendű függvényekhez. Részletek...

Típusdefiníciók

typedef int(* fun1 )(int)
 Egyparaméteres függvénytípus magasabbrendű függvényekhez.
typedef int(* fun2 )(int, int)
 Kétparaméteres függvénytípus magasabbrendű függvényekhez.

Részletes leírás

Típusok magasabbrendű függvényekhez.

Egész-függvények átadására használhatóak. Például az alábbi program kimenete 1:

#include "cekla.h"
// Returns true if Predicate(X) is true for some element X of list L
int contains(const fun1 Predicate, const list L) {
    if (L == nil) return 0;
    else if (Predicate(hd(L))) return 1;
    else return contains(Predicate, tl(L)));
}
int even(const int x) { return x % 2 == 0; }
int main() {
    const list L = cons(1, cons(2, cons(3, nil)));
    write(contains(even, L));   // prints if L contains even number
}
 Összes Osztályok Fájl Függvények Változók Típusdefiníciók