DEV Community

Patrícia Villela for Feministech

Posted on

Símbolos de APL: "Vezes" e "Divisão"

AVISO! Essa série de artigos usará exemplos rodados em Dyalog APL, a implementação da Dyalog.

AVISO 2! Esse artigo contém exemplos de código. Se você quiser rodá-los, copie e cole as linhas identadas à direita (as linhas identadas à esquerda são os resultados) nesse site: https://tryapl.org

Nesse artigo vem mais 2 símbolos!

Vezes (×)

A função monádica do × é "direção" ("Signum" na documentação).
A função "direção" retorna o sinal do argumento

 ×3 ¯10 0 1 ¯1 0 ×3J4 0.6J0.8 
Enter fullscreen mode Exit fullscreen mode

3 é positivo, -10 é negativo e 0 é zero. Esse passo é o comum.

 ×3J4 0.6J0.8 3J4÷|3J4 0.6J0.8 
Enter fullscreen mode Exit fullscreen mode

No caso do número complexo a função é um pouco mais complexa. Ela é a divisão do número pela sua magnitude.

 2×3 6 
Enter fullscreen mode Exit fullscreen mode

No entanto há uma diferença de com fazemos multiplicação de matrizes. Quando multiplicamos matrizes, além de a restrição ser apenas que o número de colunas de uma deve ser igual ao número de linhas da outra, cada elemento da matriz resultante é a soma dos produtos dos elementos de cada coluna de uma matriz por cada linha da outra matriz.

A matriz

1 2 3 4 5 6 7 8 9 
Enter fullscreen mode Exit fullscreen mode

multiplicada pela matriz

1 2 3 4 5 6 7 8 9 
Enter fullscreen mode Exit fullscreen mode

resulta na matriz

30 36 42 66 81 96 102 126 150 
Enter fullscreen mode Exit fullscreen mode

No entanto a razão de ser da APL foi uma necessidade de regularização da notação matemática. Por isso a multiplicação de matrizes funciona da mesma maneira que a adição, elemento a elemento.

 3 3⍴2 2 2 2 2 2 2 2 2 2 (3 3⍴2)×3 3⍴2 4 4 4 4 4 4 4 4 4 
Enter fullscreen mode Exit fullscreen mode

Divisão (÷)

A função monádica do ÷ é "recíproco" ("Reciprocal" na documentação).
O retorno dessa função é o inverso do agumento.

 ÷1 ¯2 1J2 1 ¯0.5 0.2J¯0.4 ÷0 DOMAIN ERROR: Divide by zero ÷0 ∧ 
Enter fullscreen mode Exit fullscreen mode

O recíproco de 0 claro que dá um erro de divisão por zero.

A função diática do ÷ é "dividir" ("Divide" na documentação). A divisão também funciona da maneira esperada.

 2 0 5÷4 0 2 0.5 1 2.5 
Enter fullscreen mode Exit fullscreen mode

Notem que há mais uma incongruência com a matemática padrão. Em APL, 0÷0 é 1!

Conclusão

Esse artigo foi menor mas ainda assim cobrimos dois outros operadores aritméticos da APL.
Bom APL!

Até a próxima!

Top comments (0)