Em uma das vezes que decidi estudar Teoria das Categorias, parcialmente por causa de Programação Funcional, Provadores Automáticos e parcialmente por nenhum motivo em especial. Essa foi provavelmente a vez que levei o assunto mais a sério e tentei criar intuição sobre vários tópicos que encontrei no caminho.
Até hoje não posso dizer que entendo bem Teoria das Categorias, mas consegui alguns exemplos e intuições úteis no caminho. Nesse texto vou falar sobre quando precisei entender Comutatividade e Associatividade como propriedades separadas, afinal é muito fácil pensar nas duas juntas já que os conjuntos de números que usamos no dia-a-dia tem ambas as propriedades. A seguir vou mostrar os exemplos e explica-los em algum nível. Podem botar dúvidas nos comentários ou outros exemplos, a discussão é bem-vinda.
Operação comutativa, mas não-associativa
Vou usar uma notação levemente diferente, mas gosto de usar operadores infixos para esse assunto, então prefiro descrever a operação abaixo da mesma forma. Vou usar a média de dois números racionais (
Q
).
O concatenação de strings (encadeamento de sequências de símbolos) é um exemplo de operação que é associativa, mas não é comutativa. Para diferenciar um símbolo que seja uma variável de um que seja o valor de uma vou usar aspas duplas para os valores.
xeˊ uma variaˊvel"x"eˊ um valor
Primeiro um símbolo infixo para concatenação, vou usar o mesmo da linguagem de programação Julia.
x="obrigado"y=" por ler"(observe o espac¸o no inıˊcio)z=" ateˊ aqui"(observe o espac¸o no inıˊcio)x∗(y∗z)="obrigado"∗(" por ler"∗" ateˊ aqui")="obrigado"∗" por ler ateˊ aqui"="obrigado por ler ateˊ aqui"(x∗y)∗z=("obrigado"∗" por ler")∗" ateˊ aqui")="obrigado por ler"∗" ateˊ aqui"="obrigado por ler ateˊ aqui"x∗(y∗z)=(x∗y)∗z=x∗y∗z="obrigado por ler ateˊ aqui"
Muito obrigado por ler até aqui. Esses exemplos junto com o produto de matrizes (que também é associativo, mas não comutativo) me ajudaram muito numa das vezes que tentei estudar Teoria das Categorias. Espero que seja útil para mais alguém.
Top comments (0)
Subscribe
For further actions, you may consider blocking this person and/or reporting abuse
We're a blogging-forward open source social network where we learn from one another
Top comments (0)