Aprendendo o conceito de Monad com Rust
(techblog.samsung.com)Olá, compartilho um texto que explica de forma relativamente simples o "Monad", um dos principais conceitos da programação funcional.
Ele foi estruturado para que você possa entender passo a passo com base em pequenos exemplos fundamentados na linguagem Rust.
7 comentários
Obrigado pelo ótimo artigo.
Dá até inveja ter Rust na empresa.
Eu gostaria que o código fosse mostrado como texto em vez de imagem.
Concordo.
Bom texto! Só que a explicação relacionada ao endofunctor tem um erro, então seria bom corrigir isso: https://x.com/simnalamburt/status/1950074970647761168?s=46
Sua observação está absolutamente correta!
Acho que houve um mal-entendido no processo de aplicar ao contexto de Rust um conteúdo escrito com base em outra linguagem.
Como o sistema de tipos de Rust forma uma única categoria, parece que a distinção entre endofuntor e funtor geral perde o sentido.
É uma pena que o blog não tenha função de comentários; vou precisar perguntar se é possível solicitar uma correção.
Nem tudo é endofunctor. Coisas com vários parâmetros de tipo, como
Result<T, E>, não são 𝒞 → 𝒞, e simResult : 𝒞 × 𝒞 → 𝒞, então esse tipo de coisa é um bifunctor.