Pergunta

Estou escrevendo um compilador de brinquedo que pode otimizar chamadas de função se o resultado depender apenas dos valores dos argumentos.Portanto, funções como xor e concatenate dependem apenas de suas entradas, chamá-las com a mesma entrada sempre dá a mesma saída.Mas funções como time e rand dependem do estado "oculto" do programa, e chamá-las com a mesma entrada pode gerar resultados diferentes.Só estou tentando descobrir qual é o adjetivo que distingue esses dois tipos de função, como "isomórfico" ou "reentrante" ou algo assim.Alguém pode me dizer a palavra que procuro?

Foi útil?

Solução

O termo que você está procurando é Puro

Outras dicas

Eu acho que se chama Função Pura:

Na programação de computadores, uma função pode ser descrita como pura se ambas as afirmações sobre a função forem válidas:

  • A função sempre avalia o mesmo valor de resultado considerando os mesmos valores de argumento.O valor do resultado da função não pode depender de nenhuma informação ou estado oculto que possa mudar à medida que a execução do programa prossegue ou entre diferentes execuções do programa, nem pode depender de qualquer entrada externa de dispositivos de E/S.
  • A avaliação do resultado não causa nenhum efeito colateral ou saída semanticamente observável, como mutação de objetos mutáveis ​​ou saída para dispositivos de E/S.

O valor do resultado não precisa depender de todos (ou de nenhum) dos valores dos argumentos.No entanto, não deve depender de nada além dos valores dos argumentos.

Eu acho que você poderia dizer que o adjetivo é "puro" se você for "função pura".

Eu sempre aprendi que uma função cuja saída é sempre a mesma quando os argumentos são sempre os mesmos chamados "determinísticos". Pessoalmente, sinto que esse é um termo mais descritivo. Eu acho que uma "função pura" é por definição determinística, e parece que uma função pura também é necessária para não ter efeitos colaterais. Suponho que isso não precisa ser o caso de todas as funções determinísticas (desde que o valor de retorno seja sempre o mesmo para os mesmos argumentos).

Link da Wikipedia: http://en.wikipedia.org/wiki/Deterministic_algorithm

Citar:

Dada uma entrada específica, ela sempre produzirá a mesma saída e a máquina subjacente sempre passará pela mesma sequência de estados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top