Question

Comment obtenir un BlockClosure dans Squeak (je souhaite utiliser BlockClosure > > callCC)?

Quand j'écris [#foo] qui est un BlockContext, quel est le problème?

Mise à jour: J'ai découvert que BlockClosure est principalement un nouveau compilateur.

Au lieu de cela, comment puis-je travailler avec Seaside Continuations? J'ai des problèmes et des exemples seraient appréciés.

Nouvelle mise à jour: le but de cette opération n’est pas d’utiliser seaside (du moins pas directement), mais plutôt d’écrire des traversées, entre autres choses, de manière plus simple que de lancer mes propres itérateurs de suivi d’état.

Était-ce utile?

La solution

Normalement, avec Seaside, vous n’avez jamais à faire face à des Continuations vous-même.

Vous utilisez simplement #call: et #answer: depuis vos composants.

Si vous essayez de faire autre chose avec Continuation que d'écrire une application Seaside, consultez WAComponent > > appelez: pour obtenir un exemple d'utilisation. .

Ou essayez ceci. Ouvrez une fenêtre de transcription. Maintenant, dans un espace de travail, sélectionnez tout ce code à la fois et faites-le:

continuation := nil.
result := Continuation currentDo: [:cc |
   "store the continuation, cc, somewhere for later use"
   continuation := cc.
   1 ].

Transcript show: result.

1 devrait apparaître dans la fenêtre de transcription. Maintenant, dans l’espace de travail, faites:

continuation value: 2

et ensuite:

continuation value: 3

Chaque valeur que vous transmettez à continuation doit s'afficher dans la transcription, car chaque valeur transmise à #value: permet de restaurer le contexte de la continuation et d'attribuer la nouvelle valeur à . résultat .

Espérons que cela aide ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top