? En C et C + + et d'autres langages qui permettent un accès direct à la mémoire de l'ordinateur , un pointeur est un type spécial de valeur qui détient une adresse mémoire à la place des données directement spécifiées . Pointeurs de fonction soulignent fonctions en mémoire au lieu de valeurs. Pointeurs de fonction peuvent être utilisés pour exécuter des techniques de programmation déclarative ou fonctionnelle de style en C ou C + + , les langues qui sont largement impératif . En aparté, la programmation déclarative de style souligne dire à l'ordinateur ce quelque chose est , tandis que la programmation impérative de style souligne dire à l'ordinateur comment faire quelque chose. Données programmation dirigée
pointeurs de fonction peuvent être utilisés pour mettre en œuvre des données dirigées programmation, qui est une forme de programmation générique . En termes simples , la programmation générique permet des fonctions de traitement des valeurs de types arbitraires. C et C + + fonctions par défaut ne peut traiter que les fonctions des types précédemment déclarés. Par exemple, une fonction " int fonction (int fromage , boule char) " doit retourner un entier et ne prend un entier et un caractère. Pointeurs de fonction peuvent être utilisés pour expédier de façon dynamique sur les types d' arguments.
Signal Processing style de programmation
pointeurs de fonction peuvent être utilisés pour mettre en œuvre des fonctions de traitement du signal de style comme carte et réduire . Ce sont des fonctions qui prennent une fonction définie par l'utilisateur et de les appliquer à chaque élément dans une liste.
Ordre supérieur programmation
la programmation d'ordre supérieur est une autre forme de programmation qui permet l'encapsulation "patterns" communes dans ce qui est connu comme une fonction d'ordre supérieur. Pointeurs de fonction peuvent être utilisés pour générer des fonctions d'ordre supérieur.
Autres déclaratives Techniques
des pointeurs de fonction peut être utilisée pour mettre en œuvre de nombreuses autres techniques de programmation déclarative . Comme autre exemple, currying peut être implémentée en utilisant des pointeurs de fonction . Le processus de s'attirer est défini comme prenant une fonction définie précédemment et retourner une nouvelle fonction qui est l'ancienne fonction avec certains de ses arguments appliqués .