Como criar listas eficientemente

Re: Como criar listas eficientemente

por Felipe Oliveira da Silva Netto -
Número de respostas: 0
Tem que ver o que cada objeto retorna em cada saída de cada outlet. As enumerações $1, $2, $3,... não são globais, mas relativas a cada saída de cada objeto ou mensagem. P. ex., se [obj] retorna uma lista de 4 valores, você pode fazer [obj] => [pack $1 $2] -> |$1 $2< e [obj] => [pack $3 $4] -> |$1 $2<, mas não pode fazer [obj] => [pack $3 $4] -> |$3 $4<, por que [pack $3 $4] retorna uma lista com apenas 2 valores, logo não tem os índices 3 e 4. Por causa disso, a mensagem pode nem ser necessária; o [pack] já retorna uma lista.
Na verdade, os argumentos do [pack] servem apenas para definir o número de elementos da lista, o tipo dos elementos e o valor de inicialização deles. Se você quiser só encaminhar 2 números na forma de lista depois que eles já foram retornados por outro objeto, pode usar [pack f f] (ou seja, 2 floats não inicializados). Veja também se você quer mesmo armazenar variáveis para usar posteriormente, fora do fluxo atual. Se é realmente isso que você quer, pode usar o [value] ou [v].