Domanda

Sto leggendo Dijkstra Monadi Gratis per una presentazione sto facendo ed è abbastanza sostanziosa.Una delle cose che tengo acceso è il termine "CPS ing".Ho letto un po ' in continuazione di passaggio di stile (cioè, ho letto attraverso la maggior parte della pagina di Wikipedia e non sentire come una sciocchezza assoluta...) ma io ancora non ho chiaro che cosa la frase "CPS ing" significa.

Essi fare un esempio, che mi duplica qui, dopo il quale verranno presentati i principali pattern vedo:

Piuttosto che essere dato manualmente, ci mostrano che questi predicato trasformatori possono essere automaticamente derivato da CPS ing puramente funzionale definizioni di monadico gli effetti (tipo di risposta Type).Per esempio, piuttosto che la definizione di WP_ST, si può calcolare semplicemente dal CPS ing familiare ST monade (cioè, state -> a * state), derivanti

WP_ST a = ((a * state) -> Type) -> state -> Type

(Per il contesto, questo può essere trovato a pagina 1, primo paragrafo all'inizio della seconda colonna).

Quindi c'è un evidente modello qui:Dato un certo tipo

a1 -> a2 -> ... -> an

siamo in grado di mappa tramite il contraviariant funtore F (a -> b) = (b -> a) che invertire le frecce, producendo

an -> ... -> a2 -> a1

e poi la sostituzione di tutte le ai con (ai -> Type).

È questa una ragionevole interpretazione del termine "CPS ing"?Inoltre, non mi è chiaro perché questo è utile, c'è qualche motivazione per ciò che si ottiene con l'applicazione di tale trasformazione?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top