Gabriel Poesia

"Servil" ao contrário dá "livres"

"Orar", ao contrário, dá "Raro".

Gravando uma aula da Loopye, mostrei como inverter uma palavra: uma brincadeira de criança que acho que todo mundo já deve ter feito. Quem nunca disse que nasceu Lisarb? Talvez só quem tenha nascido na Anitnegra ou em outro país.

Buscando exemplos de testes, olhei para a garrafinha do meu lado, com a palavra "Maratona", e me dei conta de que "Maratona" ao contrário dá "Anotaram": uma palavra válida na língua portuguesa. É claro, imediatamente coloquei "maratona" como um exemplo no vídeo. Me veio à cabeça também o clássico "Avon", que fica "Nova". E, para completar a explicação, relembrei no vídeo o que já havia dito: o quanto é possível se divertir com programação quando se tem esse conhecimento, e afirmei que, se depois desses exemplos alguém que sabe programar ficasse curioso, poderia facilmente baixar uma lista de palavras em português da Internet e fazer um programa que inverte cada palavra e verifica se a palavra invertida também está no dicionário, apenas usando coisas que já vimos nessa mesma "aula" da Loopye.

Tentei continuar escrevendo o vídeo, mas acontece que eu faço parte dessas pessoas curiosas que tinha acabado de descrever. Os dedos coçaram e não resisti. O impulso seguinte foi pensar: "mas será que isso não é fácil de achar na Internet"? Se fosse, ainda que eu pessoalmente ainda baixaria a lista de palavras e faria o programa por diversão, talvez isso só reforçasse o pensamento de que o mundo já está pronto e tudo está a uma busca de distância. É claro que esse exemplo específico certamente já foi feito milhares de vezes, e provavelmente está registrado na Internet em algum canto, mas felizmente descobri que é, no mínimo, difícil de encontrar. Como você buscaria no Google uma lista de palavras que, quando invertidas, dão outras palavras válidas? Todos os primeiros resultados para mim dão listas de palíndromes: palavras que, quando invertidas, dão elas mesmas, como "Ana", "ovo" ou "arara". Depois de 3 minutos buscando isso no Google e em outros buscadores, parei de tentar. É um caso simples de expressar em que é realmente mais fácil fazer o programa que encontrar o resultado pronto.

Primeiro ingrediente: a lista de palavras. Isso é fácil de achar: o primeiro resultado no Google para mim foi um fórum onde um português pede uma lista de palavras, e alguém prontamente responde com um link para um arquivo da Universidade do Minho, de Portugal. Mal conheço mas já considero pacas. Baixei a lista: tem 1.6MB e 998,425 palavras (com vários nomes próprios e conjugações, o que para o propósito da diversão é ainda melhor).

Depois, abro o editor de texto. O código termina, em menos tempo que as várias buscas no Google, com 9 linhas de Python, fora duas linhas em branco e um comentário com o link para o arquivo com as palavras (e está aqui, se quiser: https://pastebin.com/yNiZpw6V ). Do jeito que está, ele mostra tanto palíndromes quanto palavras invertidas. Dá para trocar uma linha de lugar e tirar os palíndromes, mas acabei por deixar, porque também são interessantes. Foi só executar, o que levou menos de 1 segundo, e ver vários exemplos interessantes. Listo alguns resultados filtrados entre algumas centenas de outros menos interessantes:

E alguns palíndromes:

Mas a descoberta do dia realmente foi que o inverso de "servil" é "livres".

Programar é amor. E um de meus amores tem sido justamente por colocar essa ferramenta, que permite que colaborem as pessoas, criativas mas lentas, e máquinas, ignorantes mas muito rápidas, numa simbiose de proveito ainda inimaginável. Agora, de volta ao vídeo.