Preguntas etiquetadas con continuation

2
Y combinator y optimizaciones de cola
La definición de un combinador Y en F # es let rec y f x = f (y f) x f espera tener como primer argumento alguna continuación para los subproblemas recursivos. Usando yf como continuación, vemos que f se aplicará a llamadas sucesivas a medida que podamos desarrollar let …

3
¿Cuáles son las alternativas al uso de una pila para representar la semántica de llamadas de función?
Todos sabemos y amamos que las llamadas a funciones generalmente se implementan usando la pila; hay marcos, direcciones de retorno, parámetros, todo el lote. Sin embargo, la pila es un detalle de implementación: las convenciones de llamada pueden hacer cosas diferentes (es decir, x86 fastcall usa (algunos) registros, MIPS y …

2
¿Cuál es un ejemplo de una continuación no implementada como procedimiento?
Una discusión interesante sobre la distinción entre devoluciones de llamada y continuaciones sobre SO ha provocado esta pregunta. Por definición, una continuación es una representación abstracta de la lógica necesaria para completar un cálculo. En la mayoría de los idiomas, esto se manifiesta como un procedimiento de un argumento al …

1
¿Son útiles las continuaciones de primera clase en los modernos lenguajes de programación orientados a objetos?
Las continuaciones son extremadamente útiles en lenguajes de programación funcionales (por ejemplo, la Contmónada en Haskell) porque permiten una notación simple y regular para el código de estilo imperativo. También son útiles en algunos idiomas imperativos más antiguos porque se pueden usar para implementar características de lenguaje faltantes (por ejemplo, …


7
¿Mejor práctica para "continuar" desde dentro de un bucle anidado?
Aquí hay una muestra simplificada. Básicamente, verifica una cadena de una lista de cadenas. Si la verificación pasa, eliminará esa cadena ( filterStringOut(i);), y ya no es necesario continuar ninguna otra verificación. Así continuea la siguiente cadena. void ParsingTools::filterStrings(QStringList &sl) { /* Filter string list */ QString s; for (int …
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.