? Em C e C + + e outras linguagens que permitem acesso direto a memória do computador, um ponteiro é um tipo especial de valor que contém um endereço de memória , em vez de dados diretamente especificados. Ponteiros de função apontam para funções de memória em vez de valores . Ponteiros de função pode ser usada para executar técnicas de programação declarativas ou de estilo funcional em C ou C + + , linguagens que são , em grande parte imperativa. Como um aparte, tensões de programação de estilo declarativo dizer ao computador o que algo é , durante a programação de estilo imperativo enfatiza dizendo ao computador como fazer alguma coisa . Programação de dados direcionados
Ponteiros de função pode ser usada para implementar Programação de dados direcionados , o que é uma forma de programação genérica . Em termos leigos , a programação genérica permite que as funções para processar valores de tipos arbitrários. + Funções C e C + por padrão pode apenas funções do processo de previamente declarado tipos . Por exemplo, uma "função int ( int queijo , bola char) " função deve retornar um inteiro e leva apenas um inteiro e um personagem. Ponteiros de função pode ser usada para despachar dinamicamente sobre os tipos de argumentos.
Signal Estilo Processamento Programação
Ponteiros de função pode ser usada para implementar funções de estilo de processamento de sinais , tais como mapa e reduzir . Estas são funções que recebem uma função especificada pelo usuário e aplicá-las a cada elemento em uma lista.
Ordem superior Programação
Superior programação ordem é outra forma de programação que permite encapsular "padrões" comuns no que é conhecido como uma função de ordem superior. Ponteiros de função pode ser usada para gerar funções de ordem superior.
Outras técnicas declarativas
Ponteiros de função pode ser usado para implementar muitas outras técnicas de programação declarativa . Como outro exemplo, currying pode ser implementado usando ponteiros de função . O processo de currying é definido como tendo uma função previamente definida e retornando uma nova função que é a antiga função com alguns dos seus argumentos aplicada.