Array :: APX.

extensões de programação de matriz
Baixe Agora

Array :: APX. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Dr. Bernd Ulmann
  • Site do editor:
  • http://search.cpan.org/~vaxman/

Array :: APX. Tag


Array :: APX. Descrição

Array :: APX é um módulo Perl que se estende Perl-5 com alguma funcionalidade básica comumente encontrada em linguagens de programação de matriz, como Apl, Lang5 etc. É basicamente um invólucro de matriz :: Deeputils e sobrecarrega alguns operadores básicos de perl de uma forma que permite facilitar a manipulação de estruturas de dados aninhadas. Essas estruturas de dados são basicamente abençoadas matrizes nd dimensionais que podem ser tratadas de maneira semelhante ao APL ou LANG5.A O bom exemplo é o cálculo de uma lista de números primos usando uma solução APL arquetípica. A ideia básica é esta: criar um produto externo de dois vetores . A matriz resultante não contém nenhum dos primos, uma vez que cada número é o produto de pelo menos dois inteiros. Em seguida, verifique cada número no vetor original se for um membro desta matriz. Se não, deve ser um número primo. O método teórico definido 'in' retorna um vetor de seleção consistindo de 0 e 1 valores que podem ser usados em uma segunda etapa para selecionar apenas os valores primários do vetor original. Usando Array :: APX Isso pode ser escrito em Perl como este: Use rigoroso; use avisos; Use Array :: APX QW (: ALL); meu $ f = sub {$ _ * $ _ }; # Precisamos de um produto externo meu $ x; Imprimir $ x-> Select (! ($ x = iota (199) + 2) -> em ($ x | $ f | $ x)); como isso funciona? Primeiro um vetor é criado: $ x = IOTA (99) + 2te é então usado para criar um produto externo (basicamente uma tabela de multiplicação sem a 1 coluna / linha: my $ f = Sub {$ _ * $ _ }; # Precisamos de um produto externo ... $ x | $ f | $ x ... o | - operador é usado aqui como o generalizado externo-'produto ' -Properator (se aplicado a duas estruturas de dados APX, atuaria como bit a bitina ou) - espera uma referência de função como $ F no exemplo acima. Assim, é possível criar qualquer 'produtos' externos - não necessariamente baseado na multiplicação só. Usando o vetor armazenado em $ x e esta matriz bidimensional, o método in-método é usado para derivar um vetor booleano que contém um 1 em cada lugar correspondente a um elemento no operando à esquerda que está contido no operando da direita . Este vetor booleano é então invertido usando o sobrecarregado! -Operador:! ($ X = iota (99) + 2) -> em ($ x | $ f | $ f | $ f | $ x) usando o método selecionado Este vetor booleano é usado para Selecione os elementos correspondentes t o Lugares marcados com 1 do vetor original $ x, produzindo assim um vetor de números primos entre 2 e 100: imprimir $ x-> selecione (! ($ x = iota (199) + 2) -> em ($ x | $ f | $ x)); Sinopse use rigoroso; use avisos; Use Array :: APX QW (: ALL); # Crie dois vetores e : meu $ x = IOTA (3); meu $ y = iota (3) + 3; Imprimir "O primeiro vetor é $ x"; Imprimir "O segundo vetor é $ y \ n"; # Adicione esses vetores e imprima o resultado: Imprimir 'A soma desses dois vetores é', $ x + y, "\ n"; # Crie uma função para multiplicar dois valores: Meu $ F = sub {$ _ * $ _ }; # Crie um produto externo e imprima: Imprimir "O produto externo desses dois vetores é \ n", $ x | $ f | $ y; produz o primeiro vetor é O segundo vetor é A soma desses dois vetores é O produto externo desses dois vetores é ] Homepage do produto


Array :: APX. Software Relacionado