onur (./26) :
ce qui permet de faire une fonction capable de générer à la volée des fonctions de collision:
function createCollideFunction(low,high){
return function(x){
if (x>low && x<high) return true;
return false;
}
}
le jour où vous trouvez des langages qui font ça... (enfin y en a: python, LUA je pense, mais je veux dire le javascript joue dans la cour des grands)
Le C le peut:
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
int main (int argc, const char *argv[])
{
bool (*createCollideFunction (int low, int high)) (int) {
bool function (int x) {
if (x>low && x<high)
return true;
return false;
}
return function;
}
int low = atoi (argv[1]);
int high = atoi (argv[2]);
bool (*f)(int) = createCollideFunction (low, high);
int x = 3;
printf ("collision = %d\n", f(x));
return 0;
}
C'est juste la syntaxe qui est spéciale (et que c'est du GNU C 99 comme standard de langage).