stringtranslate.com

Operador J

En informática , el operador J de Peter Landin es una construcción de programación que compone posteriormente 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 convertir las etiquetas y los saltos en valores 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ó un "cierre de programa", que constaba de una función llamada cuerpo y un estado SECD llamado volcado. Un cierre de programa es equivalente a componer su cuerpo con el volcado en forma de continuación ( closure ( 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 la llamó. 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, a continuación, obliga a la función que llamó al operador J a devolver ese valor.

Ejemplos

J( λx.x ) es equivalente a una declaración de retorno 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 retornará de inmediato.

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

Véase también

Referencias

Por Landin
Por otros