Pergunta

Como faço para obter um BlockClosure em Squeak (eu quero usar BlockClosure >> callCC)?

Quando eu escrevo [#foo] que é um BlockContext, qual é o problema?

Update:. Eu tenho trabalhado para fora que BlockClosure é uma coisa, principalmente, de novo compilador

Em vez disso como posso trabalhar com Continuations à beira-mar? Estou tendo problemas, e os exemplos seria apreciada.

Além disso update: O objetivo deste não é para uso balnear (pelo menos não diretamente), mas sim para traversals gravação e outras coisas de uma forma que é mais fácil do que rolar meus próprios iteradores de rastreamento de estado

.
Foi útil?

Solução

Normalmente, com Seaside, você nunca tem que lidar com Continuations si mesmo em todos.

Você acabou de usar #call: e #answer: de dentro de seus componentes.

Se você está tentando fazer outra coisa com Continuation diferente de escrever uma aplicação Mar, dê uma olhada WAComponent>>call: para um exemplo de uso.

Ou tente isso. Abra uma janela de Transcrição. Agora, em um espaço de trabalho, selecione todos este código de uma vez e Do-lo:

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

Transcript show: result.

Você deverá ver 1 exibido na janela de Transcrição. Agora, no espaço de trabalho, fazer:

continuation value: 2

e, em seguida:

continuation value: 3

Você deverá ver cada valor que você passa para continuation exibido na transcrição porque cada valor que você passa para #VALUE:. Faz com que o contexto da continuação para ser restaurado e o novo valor atribuído a result

Espero que ajude ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top