O que é uma função de primeira classe?

"Função de primeira classe" é um termo que pode ser aplicado na programação de computadores e ciência da computação a uma linguagem de programação de computador se o tratamento de funções aderir a um conjunto de diretrizes, embora o escopo e a profundidade completos dessas diretrizes não sejam formalmente acordados. Para ter uma linguagem de programação de computadores de função de primeira classe, o principal recurso que deve ser suportado é a capacidade de passar funções como argumentos para outras funções. Uma função também deve ser capaz de ser atribuída a uma variável para que possa ser armazenada. Outras propriedades usadas para determinar o que constitui uma função de primeira classe incluem a capacidade de gerar dinamicamente uma função no tempo de execução e a capacidade do idioma de ter uma função como um valor de retorno de outra função. Os idiomas que suportam a arquitetura da função de primeira classe permitem um alto nível de abstração e também, em alguns casos, fornecem um mecanismo para a geração de código dinâmico em tempo de execução.

Quando o termo "função" é usado em um sentido vagamente definido, o conceito de passar uma função dentro de um programa através de variáveis ​​não é necessariamente exclusivo para idiomas que implementam nativamente o suporte à função de primeira classe. A capacidade de passar blocos de código para funções ou retornar o código não dinâmico de uma função pode ser facilmente feito em muitas linguagens de programação através de diferentes mecanismos. Uma das partes estritas da definição de uma linguagem de função de primeira classe, no entanto, é que o manuseio de funções como variáveis ​​deve ser feito nativamente, sem o uso de metadados como o condicional define e sem chamar um compilador para recompilar um pedaço de código. O termo "função" também é usado para se referir a blocos de código independentes chamados por conta própria, o que significa que eles não incluem os blocos de código conhecidos como métodos em linguagens de programação orientadas a objetos ou os blocos às vezes chamados de procedimentos em outros idiomas.

Quando um idioma éProjetado para permitir o código da função de primeira classe, alguns padrões de design podem ser implementados mais diretamente do que em outros idiomas. Uma função pode receber uma função como uma variável e, em seguida, construir uma nova função e retornar a nova função ao código de chamada; portanto, isso cria um mecanismo para a criação de tempo de execução do código do programa. Isso também pode possibilitar o uso de funções insuficientes em tempo real no idioma sem o uso de processos como reflexão ou avaliação.

Alguns dos usos mais básicos para a arquitetura de funções de primeira classe incluem a criação de funções genéricas que podem ser facilmente reutilizadas e implementação de algoritmos matemáticos recursivos capazes de se auto-modificar suas equações à medida que progridem. Um uso semelhante e mais avançado para mecanismos de primeira classe é a implementação do polimorfismo em idiomas nos quais não é implementado especificamente. Isso pode permitir que as funções sejam chamadas com a mesma assinatura de função, mas execute o código com base no contexto em WhiCH foi chamado, às vezes passando uma função -chave para a função polimórfica.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?