Tengo dificultades para entender qué significa exactamente cuando un valor tiene el tipo A @cpsParam[B,C]
y qué tipos de esta forma debo asignar a mis valores cuando uso la facilidad de continuación delimitada.No entiendo el tipeo de las continuaciones delimitadas de Scala (A @cpsParam [B, C])
He mirado en algunas fuentes:
http://lamp.epfl.ch/~rompf/continuations-icfp09.pdf
http://www.scala-lang.org/node/2096
http://dcsobral.blogspot.com/2009/07/delimited-continuations-explained-in.html
http://blog.richdougherty.com/2009/02/delimited-continuations-in-scala_24.html
pero no me dio mucha intuición en esto. En el último enlace, el autor intenta dar una explicación explícita, pero de todos modos no está lo suficientemente claro.
El A aquí representa el resultado del cálculo, que también es la entrada a su continuación. B representa el tipo de devolución de esa continuación, y C representa su tipo de devolución "final", porque shift puede hacer un procesamiento posterior del valor devuelto y cambiar su tipo.
No entiendo la diferencia entre "salida del cálculo", "tipo de devolución de la continuación" y "tipo de devolución final de la continuación". Suenan como sinónimos.
Siempre estoy triste cuando la gente no puede ver mi publicación en el blog: http://suereth.blogspot.com/2010/03/how-you-should-think-about-delimited.html I cubra esto en detalle, ya que fue algo que me frustró enormemente al buscar fuentes existentes en Internet. – jsuereth
Gracias Josh, veré tu publicación. – jkff