Cps.

Estruturas de controle de fluxo no estilo de passagem de continuação
Baixe Agora

Cps. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Paul Evans
  • Site do editor:
  • http://search.cpan.org/~pevans/

Cps. Tag


Cps. Descrição

Estruturas de controle de fluxo em estilo de passagem de continuação As funções no módulo CPS Perl implementam ou ajudam a redação de programas, ou partes delas, na continuação de estilo (CPS). Resumidamente, o CPS é um estilo de código de escrita, onde o mecanismo normal de chamada / retorno é substituído por "continuações" explícitas, valores passados para funções que deveriam invocar, para implementar o comportamento de retorno. Para mais detalhes sobre o CPS, consulte a seção Consulte também. O que este módulo implementa não é, na verdade, o CPS verdadeiro, como o perl não suporta nativamente a ideia de uma continuação real (como é criada por uma co-rotina). Além disso, para a CPS ser eficiente em idiomas que o suportam nativamente, suas execuções normalmente implementam muita otimização do CPS CDE, que o intérprete perl seria incapaz de executar. Em vez disso, as referências de código são passadas para ficar em seu lugar. Embora não seja particularmente útil para a maioria dos casos regulares, isso se torna muito útil sempre que alguma forma de programação assíncrona ou baseada em eventos está sendo usada. As continuações passadas na função do corpo de uma estrutura de controle podem ser armazenadas nos manipuladores de eventos da estrutura assíncrona ou orientado por eventos, de modo que, quando forem invocados posteriormente, o código continua, eventualmente chegando à sua resposta final em algum momento Future.in Order para esses exemplos fazer sentido, uma estrutura fictícia e simples de assincronização foi inventada. Os detalhes exatos da operação não devem ser importantes, pois simplesmente representa o ponto. Espero que sua intenção geral seja óbvia. :) read_stdin_line (\ on_line); # Espere em uma linha de stdin, depois passe # para o manipulador Functionsynopsis use CPS QW (kwhile); kwhile (sub {my ($ knoxt, $ klast) = @_; imprimir "Digite um número ou q para sair:"; read_stdin_line (sub {my ($ primeiro) = @_; CHOMP $; Retornar $ Klast- > () Se $ primeiro EQ "Q"; Imprimir "Digite um segundo número:"; read_stdin_line (sub {my ($ segundo) = @_; imprimir "a soma é". ($ primeiro + $ segundo). " n "; $ Knext -> ();});});}, sub {exit}); Requisitos: · Perl.


Cps. Software Relacionado