Pregunta

Estoy escribiendo un compilador de manivela de juguete que se puede optimizar la función llama a si el resultado sólo depende de los valores de los argumentos. Así funciona como XOR y concatenar sólo dependen de sus entradas, llamándolos con la misma entrada siempre da la misma salida. Pero funciones como la hora y rand dependen del estado del programa "oculto", y llamarlos con la misma entrada puede dar salida diferente. Sólo estoy tratando de averiguar lo que el adjetivo es lo que distingue a estos dos tipos de funciones, como "isomorfo" o "re-entrante" o algo así. ¿Puede alguien decirme la palabra que estoy buscando?

¿Fue útil?

Solución

El término que busca es Pure

Otros consejos

Yo creo que se llama pura función :

  

En la programación informática, una función puede ser descrito como pura si estas dos afirmaciones sobre la bodega de función:

     
      
  • La función evalúa siempre el mismo valor del resultado dado el mismo valor (s) argumento. El valor resultado de la función no puede depender de cualquier información oculta o estado que puede cambiar a medida que avanza la ejecución del programa o entre diferentes ejecuciones de programa, ni puede depender de cualquier entrada externa de los dispositivos de E / S.
  •   
  • evaluación del resultado no causa ningún efecto secundario semánticamente observable o salida, tal como la mutación de objetos mutables o de salida a los dispositivos de E / S.
  •   
     

El valor del resultado no tiene por qué depender de todos (o cualquier otro) de los valores de los argumentos. Sin embargo, se debe depender de nada más que los valores de los argumentos.

Creo que se podría decir que el adjetivo es "puro" si se va por "pura función".

Siempre supe que una función cuya salida es siempre el mismo cuando los argumentos son siempre los mismos que se llama "determinista". En lo personal, siento que es un término más descriptivo. Supongo que una "función pura" es, por definición, determinista, y parece una pura función también se requiere que no tiene ningún efecto secundario. Asumo que ese no es necesariamente el caso para todas las funciones deterministas (siempre y cuando el valor de retorno es siempre el mismo para los mismos argumentos).

Enlace Wikipedia: http://en.wikipedia.org/wiki/Deterministic_algorithm

Cita:

  

Dada una entrada en particular, siempre producirá la misma salida, y la máquina subyacente siempre pasará a través de la misma secuencia de estados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top