Nome de uma função que retorna seus argumentos?


34

Uma função que não faz nada, não aceita argumentos e retorna nada é tradicionalmente chamada de a noopou não. Um exemplo de um noop está abaixo:

function noop(){}

http://en.wikipedia.org/wiki/NOP

Então, existe um nome para uma função que visa apenas retornar seus argumentos, e não fazer mais nada? Um exemplo desse tipo de função:

function(a){return a}


17
Para os eleitores próximos: Esta não é uma pergunta baseada em opinião, há uma resposta definitiva.
Daenyth

@Daenyth "Também é comumente conhecido como um pass-through" - provavelmente não tão definitiva quanto parece
mosquito

2
A passagem @gnat é usada para se referir a métodos em uma subclasse que invocam um método pai sem alterar os parâmetros ou o que o método pai retornar. Mas o super método pode retornar nada ou algo completamente diferente. Retornar a mesma coisa que é passada não faz parte da definição de uma passagem. Se isso acontecer, é apenas porque o método pai específico faz isso. De fato, métodos de classe OO que não fazem nada além de retornarem o mesmo valor que foram passados ​​são extremamente raros.
itsbruce

4
@ Snowman Isso não é uma declaração informada. Em qualquer idioma que suporte funções de ordem superior, que podem retornar uma função que pode fazer qualquer coisa arbitrária a uma determinada entrada, é muito útil poder retornar, em algumas circunstâncias, uma função que não altera a entrada. Ele permite que os fluxos de controle sejam criados com funções e não com palavras-chave. Ao dobrar uma lista (ou outra estrutura) para criar uma função composta (como no caso de listas de diferenças), a função de identidade geralmente é o valor natural da semente.
itsbruce

Respostas:


65

É chamada de função de identidade e, às vezes, é abreviada como idna teoria das categorias e nas linguagens de programação funcional.


4
Embora se deva observar que a maioria dos programadores não possui o conhecimento formal ou de programação funcional para saber disso. Também é conhecido como passagem.
Telastyn

5
Já fiz muita matemática formal, mas, por algum motivo, não me lembrei da resposta até que vi isso e entrei em contato.
Ixrec 6/03/2015

5
@ Telastyn E no Java 8 ainda é chamado de "identidade". O nome está diminuindo sua formação matemática / funcional e se tornando o padrão.
Izkata 6/03/2015

3
De fato. E o fato de ter uma raiz formal, combinada com a crescente conscientização do termo, o torna mais útil do que algum jargão arbitrário e específico ao idioma.
itsbruce

11
@Telastyn "passagem" é quase sempre usado em OO, referindo-se especificamente a métodos que invocam o método de um pai sem alterar os parâmetros. Isso é mais específico e limitado do que o conceito da função de identidade, principalmente porque o método OO geralmente não retorna nada além do argumento - ou algo completamente diferente. Portanto, embora uma passagem retorne a mesma coisa que o método super, não é necessário retornar o argumento original. Essas são coisas diferentes.
itsbruce
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.