función estricta


En informática y programación de computadoras , se dice que una función f es estricta si, cuando se aplica a una expresión que no termina, tampoco termina. [1] Una función estricta en la semántica denotacional de los lenguajes de programación es una función f donde . La entidad , llamada bottom , denota una expresión que no devuelve un valor normal, ya sea porque se repite sin cesar o porque aborta debido a un error como la división por cero. Una función que no es estricta se llama no estricta . Alenguaje de programación estricto es aquel en el que las funciones definidas por el usuario son siempre estrictas.

Intuitivamente, las funciones no estrictas corresponden a estructuras de control . Operacionalmente, una función estricta es aquella que siempre evalúa su argumento ; una función no estricta es aquella que podría no evaluar algunos de sus argumentos. Las funciones que tienen más de un parámetro pueden ser estrictas o no estrictas en cada parámetro de forma independiente, así como conjuntamente estrictas en varios parámetros simultáneamente.

Como ejemplo, la if-then-elseexpresión de muchos lenguajes de programación, llamados ?:en lenguajes inspirados en C, puede pensarse como una función de tres parámetros. Esta función es estricta en su primer parámetro, ya que la función debe saber si su primer argumento se evalúa como verdadero o falso antes de que pueda regresar; pero no es estricto en su segundo parámetro, porque (por ejemplo) , así como tampoco es estricto en su tercer parámetro, porque (por ejemplo) . Sin embargo, es conjuntamente estricto en su segundo y tercer parámetro, ya que y .if(false,,1) = 1if(true,2,) = 2if(true,,) = if(false,,) =

En un lenguaje de programación funcional no estricto , el análisis de rigor se refiere a cualquier algoritmo utilizado para probar el rigor de una función con respecto a uno o más de sus argumentos. Estas funciones se pueden compilar en una convención de llamada más eficiente , como la llamada por valor , sin cambiar el significado del programa adjunto.