stringtranslate.com

operador J

En informática , el operador J de Peter Landin es una construcción de programación que poscompone una expresión lambda con la continuación del contexto lambda actual. La "función" resultante es de primera clase y se puede pasar a funciones posteriores, donde, si se aplica, devolverá su resultado a la continuación de la función en la que se creó.

Historia

El operador J fue creado para hacer etiquetas y saltar un valor de primera clase. Fue diseñado para funcionar con la máquina SECD con las siguientes transiciones adicionales:

El operador J creó originalmente lo que se llamó "cierre de programa", que constaba de una función llamada cuerpo y un estado SECD llamado volcado. Un cierre de programa equivale a componer su cuerpo con el volcado en forma de continuación ( cierre ( f , D )( x) = D ( f ( x ))).

Descripción simplificada

El operador J compone una función con la continuación de la función que llama. Es decir, el operador J devuelve una función, que cuando se aplica aplica el argumento del operador J con el argumento de la función, y luego fuerza a la función que llamó al operador J a devolver ese valor.

Ejemplos

J( λx.x ) es equivalente a una declaración de devolución de primera clase. Esto se debe a que λx.x es la función de identidad, por lo que cuando se aplica no hará nada con el valor dado y lo devuelve de inmediato.

λv. J( λx.x ) inicialmente devuelve el J de λx.x , pero eso podría usarse en una expresión circundante para que vuelva a devolver un valor diferente.

Ver también

Referencias

Por Landín
Por otros