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
We're a place where coders share, stay up-to-date and grow their careers.
Top comments (0)