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
3 é positivo, -10 é negativo e 0 é zero. Esse passo é o comum.
×3J4
0.6J0.8
3J4÷|3J4
0.6J0.8
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
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
multiplicada pela matriz
1 2 3
4 5 6
7 8 9
resulta na matriz
30 36 42
66 81 96
102 126 150
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
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
∧
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
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)